头文件里面声明的函数,到底加extern好还是不加extern呢?加不加都一样,默认是EXTERN。有时候没包含头文件编译也能找到函数,不报错只警告
头文件里面声明的函数,到底加extern好还是不加extern呢?
C/C++>C语言
收藏回复
[问题点数:20分]
0深水蓝0
等级
结帖率 79.49%
想征求一下大家的意见。
一些希望对望公开的函数或接口,在头文件里面写出prototype,但是在名字前面加上extern好呢,还是不加extern好呢?
希望你也说说为什么好或者为什么不好呢?
2016-08-10 21:24:17
楼主
lm_whales
等级
勋章
函数和变量不同
函数声明,不写extern 也是 extern
并且函数声明,定义的形式不同。不写也不会造成混乱。
变量不写,可能会看成定义式
尤其是C++,对象类型。
2016-08-11 00:14:42
#1得分 0
lm_whales
等级
勋章
函数声明,正常是不写extern 的,因为那是多余的
就像 没有人会写 auto int x ;一样。
以至于 auto 现在用作别的用途了
2016-08-11 00:16:45
#2得分 0
Manhand
等级
在硬件方面的程序,一般会在要用到该函数的文件的头文件里面用extern,告诉编译器,这个函数的声明在别的地方
2016-08-11 08:28:39
#3得分 0
wang0635
等级
我的习惯是一律不加。只是提供函数原型而已
2016-08-11 08:35:41
#4得分 0
版主
paschen
等级
勋章
通常为了简便不用加的,理解上也没什么歧义
2016-08-11 09:51:29
#5得分 0
版主
小灸舞
等级
勋章
一般习惯不加
2016-08-11 10:14:47
#6得分 0
0深水蓝0
等级
好的,明白了,感谢各位。
2016-08-11 12:14:00
https://bbs.csdn.net/topics/391998810
头文件里面声明的函数,到底加extern好还是不加extern呢?加不加都一样,默认是EXTERN。有时候没包含头文件编译也能找到函数,不报错只警告相关推荐
- python无缘无故不执行/跳过某个函数,无报错无警告
在执行函数一个函数的时候无报错无警告,但就是不执行这个函数,下面是解决方案: 可能在函数中加入了 yield 关键字 !!! 如下函数就无法执行: def get_xx():a = "tes ...
- 编译make px4_fmu-v2_default upload时,报错ERROR Board can accept larger flash images (2080768 bytes)
编译make px4_fmu-v2_default upload时,报错ERROR: Board can accept larger flash images (2080768 bytes) than ...
- ubuntu 16.04 编译android 7.1,jack报错
ubuntu 16.04 编译android 7.1,jack报错 Writing client settings in /home/nikos/.jack-settings Installing j ...
- 标准成本估算时当遇到无BOM、或无Routing、或者下级物料为外购键但是价格为0但无明显报错或警告的问题
CK11N做标准成本估算时,当遇到要估算的料无BOM或者无Routing直接显示绿灯(没有报错)的情况时应该怎么处理: 无BOM的消息号:CK 424 无Routing的消息号:CK 229 下级 ...
- python3.9 执行python3.6生成的随机森林模型model.pkl报错,警告版本不一致
python3.9 执行python3.6生成的随机森林模型model.pkl报错 UserWarning: Trying to unpickle estimator RandomForestClas ...
- 解决Matlab报错:警告: MATLAB 先前因底层图形错误而崩溃。为避免在此会话期间再次崩溃,MATLAB 将使用软件 OpenGL 而不再使用图形硬件。
这种情况下一般是显卡出现了问题,可能最基础的画图都会报错,崩溃.(本人用的是R2016a版本,之前可以正常使用) 这个时候进入设备管理器更新你电脑的显卡驱动,重启MATLAB就可以了!
- http协议请求https协议报错或警告处理方案
HTTPS是HTTP over Secure Socket Layer,以安全为目标的 HTTP 通道,所以在 HTTPS 承载的页面上不允许出现 http 请求,一旦出现就是提示或报错: 如果我们不 ...
- mysql update主键冲突_mysql主键重复,不报错,只更新的操作
项目中对接一个单点登陆的回调api,需要判断用户是否在库,不在库新增用户,在库更新登陆次数,大概代码如下:<?php $isExist = true; if ($isExist) { inser ...
- centos8 解决编译安装 nginx时遇到的报错
下载解压切换目录略~ 编译nginx [root@iZgt88z6l1kvd7Z nginx-1.10.1]# ./configure --prefix=/usr/local/nginx --with ...
最新文章
- Windows Server 2008 安装
- 35岁真的是程序员的坎儿吗?
- Just $h$-index HDU - 6278(主席树找区间大于等于k的个数)
- 机器学习09支持向量机
- C#图解教程 第十八章 枚举器和迭代器
- 随笔记录开发遇到的问题
- 良心推荐:40个Google Chrome扩展程序
- php 做圆形头像,php制作圆形用户头像方法
- Xilinx Vitis学习-ug1393
- 遗传算法原理与matlab,有关路径优化遗传算法原理(结合matlab代码)
- html打印去掉页码和日期,PPT打印讲义时如何去掉日期页码?
- (一)阿里云创建自己的产品和设备
- 51单片机课设——温控手机散热器
- 考研常识-总结1(硕士、专硕;非全日制、全日制)
- 批处理打开/关闭休眠
- 相机和雷达外参联合标定
- MES生产计划排程:提升工厂效益的有力工具
- 有得必有失,你该把技术做多细?
- deepFM model
- Linux 命令 —— tree