为不存在的函数声明函数原型是否安全?



我正在编写一个C程序,该程序使用一些宏批量创建函数原型,但是我经常不编写宏创建原型的所有函数。这在gcc中编译得很好,但我想知道这是否不安全,或者如果我使用不同的编译器会导致错误?

原型只声明函数的名称和用法(参数、类型)。如果编译器遇到使用这样的函数,它将根据原型检查您的使用,并在您的使用不兼容时发出警告。

当开发环境开始链接对象时,它将搜索在对象中没有找到的已使用的函数。如果找不到使用的函数,则链接失败。

因为原型只声明了函数和它的用法,如果函数没有被使用,它不要求函数存在。因此,为没有提供的函数声明原型是安全的。

(但这可能会让另一个程序员感到困惑,因为他/她看到原型就希望函数存在。)

最新更新