头文件里面声明的函数,到底加extern好还是不加extern呢?

0深水蓝0 2016-08-10 09:24:17
想征求一下大家的意见。

一些希望对望公开的函数或接口,在头文件里面写出prototype,但是在名字前面加上extern好呢,还是不加extern好呢?

希望你也说说为什么好或者为什么不好呢?
...全文
3285 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2018-05-17
  • 打赏
  • 举报
回复
《程序员的自我修养——链接、装载与库》
justsure 2018-05-16
  • 打赏
  • 举报
回复
三楼说错了:在硬件方面的程序,一般会在要用到该函数的文件的头文件里面用extern,告诉编译器,这个函数的声明在别的地方 正好说反了。 应该是 告诉编译器 这个函数定义在别的地方,这里只是声明并不是定义。加个extern 帮别人,或者后来的自己区分开来,提醒这里是声明,定义在别的地方。 通常函数不加extern 变量加。感觉就像写代码会对齐一样,算是个规范问题吧。加不加都一样。不加 下次再看的时候容易纠结,这里是定义还是声明。加了就能立刻明白是声明~
lm_whales 2016-08-11
  • 打赏
  • 举报
回复
函数声明,正常是不写extern 的,因为那是多余的 就像 没有人会写 auto int x ;一样。 以至于 auto 现在用作别的用途了
0深水蓝0 2016-08-11
  • 打赏
  • 举报
回复
引用 3 楼 Manhand 的回复:
在硬件方面的程序,一般会在要用到该函数的文件的头文件里面用extern,告诉编译器,这个函数的声明在别的地方
但是为什么不直接包含这个函数的头文件呢?如果这个函数是公开的,那应该在函数实体对应的头文件里面也会有一份声明吧?
lm_whales 2016-08-11
  • 打赏
  • 举报
回复
函数和变量不同 函数声明,不写extern 也是 extern 并且函数声明,定义的形式不同。不写也不会造成混乱。 变量不写,可能会看成定义式 尤其是C++,对象类型。
0深水蓝0 2016-08-11
  • 打赏
  • 举报
回复
好的,明白了,感谢各位。
小灸舞 版主 2016-08-11
  • 打赏
  • 举报
回复
一般习惯不加
paschen 2016-08-11
  • 打赏
  • 举报
回复
通常为了简便不用加的,理解上也没什么歧义
wang0635 2016-08-11
  • 打赏
  • 举报
回复
我的习惯是一律不加。只是提供函数原型而已
Manhand 2016-08-11
  • 打赏
  • 举报
回复
在硬件方面的程序,一般会在要用到该函数的文件的头文件里面用extern,告诉编译器,这个函数的声明在别的地方

70,014

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧