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

14j*_*lla 2 c gcc

我正在编写一个C程序,它使用一些宏来批量生成函数原型,但是我经常不编写宏为其制作原型的所有函数.这在gcc中编译得很好,但我想知道这是不安全的,或者如果我使用不同的编译器会导致错误?

Pau*_*vie 5

原型只声明函数的名称和用法(参数,类型).如果编译器遇到使用这样的函数,它将检查您对原型的使用,并警告您的使用是否兼容.

当开发环境开始链接对象时,它将搜索在对象中使用但未找到的函数.如果找不到使用的函数,链接将失败.

由于原型只声明了函数及其用法,因此如果不使用函数,则不需要函数存在.因此,为您未提供的函数声明原型是安全的.

(但如果他/她看到原型,那么对于希望该功能存在的另一个程序员来说,这可能会令人困惑.)

  • 最后一句应该是**粗体**.允许与否,声明不存在的函数是不好的形式.它让其他程序员感到困惑,六个月之后也让自己感到困惑. (3认同)