头文件里面声明的函数,到底加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。有时候没包含头文件编译也能找到函数,不报错只警告相关推荐

  1. python无缘无故不执行/跳过某个函数,无报错无警告

    在执行函数一个函数的时候无报错无警告,但就是不执行这个函数,下面是解决方案: 可能在函数中加入了 yield 关键字 !!! 如下函数就无法执行: def get_xx():a = "tes ...

  2. 编译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 ...

  3. ubuntu 16.04 编译android 7.1,jack报错

    ubuntu 16.04 编译android 7.1,jack报错 Writing client settings in /home/nikos/.jack-settings Installing j ...

  4. 标准成本估算时当遇到无BOM、或无Routing、或者下级物料为外购键但是价格为0但无明显报错或警告的问题

    CK11N做标准成本估算时,当遇到要估算的料无BOM或者无Routing直接显示绿灯(没有报错)的情况时应该怎么处理: 无BOM的消息号:CK  424 无Routing的消息号:CK  229 下级 ...

  5. python3.9 执行python3.6生成的随机森林模型model.pkl报错,警告版本不一致

    python3.9 执行python3.6生成的随机森林模型model.pkl报错 UserWarning: Trying to unpickle estimator RandomForestClas ...

  6. 解决Matlab报错:警告: MATLAB 先前因底层图形错误而崩溃。为避免在此会话期间再次崩溃,MATLAB 将使用软件 OpenGL 而不再使用图形硬件。

    这种情况下一般是显卡出现了问题,可能最基础的画图都会报错,崩溃.(本人用的是R2016a版本,之前可以正常使用) 这个时候进入设备管理器更新你电脑的显卡驱动,重启MATLAB就可以了!

  7. http协议请求https协议报错或警告处理方案

    HTTPS是HTTP over Secure Socket Layer,以安全为目标的 HTTP 通道,所以在 HTTPS 承载的页面上不允许出现 http 请求,一旦出现就是提示或报错: 如果我们不 ...

  8. mysql update主键冲突_mysql主键重复,不报错,只更新的操作

    项目中对接一个单点登陆的回调api,需要判断用户是否在库,不在库新增用户,在库更新登陆次数,大概代码如下:<?php $isExist = true; if ($isExist) { inser ...

  9. centos8 解决编译安装 nginx时遇到的报错

    下载解压切换目录略~ 编译nginx [root@iZgt88z6l1kvd7Z nginx-1.10.1]# ./configure --prefix=/usr/local/nginx --with ...

最新文章

  1. Windows Server 2008 安装
  2. 35岁真的是程序员的坎儿吗?
  3. Just $h$-index HDU - 6278(主席树找区间大于等于k的个数)
  4. 机器学习09支持向量机
  5. C#图解教程 第十八章 枚举器和迭代器
  6. 随笔记录开发遇到的问题
  7. 良心推荐:40个Google Chrome扩展程序
  8. php 做圆形头像,php制作圆形用户头像方法
  9. Xilinx Vitis学习-ug1393
  10. 遗传算法原理与matlab,有关路径优化遗传算法原理(结合matlab代码)
  11. html打印去掉页码和日期,PPT打印讲义时如何去掉日期页码?
  12. (一)阿里云创建自己的产品和设备
  13. 51单片机课设——温控手机散热器
  14. 考研常识-总结1(硕士、专硕;非全日制、全日制)
  15. 批处理打开/关闭休眠
  16. 相机和雷达外参联合标定
  17. MES生产计划排程:提升工厂效益的有力工具
  18. 有得必有失,你该把技术做多细?
  19. deepFM model
  20. Linux 命令 —— tree

热门文章

  1. 遵义虚拟服务器,遵义市云服务器费用
  2. 安卓图表hellochart - 折线图LineChartView (一)
  3. 如何利用附近小程序推广自己的小程序
  4. 视频理解相关源码解析
  5. MFC中UpdateData函数的使用解释
  6. 关于人工智能的幻想(十)实现的顺序
  7. Linux内核IOREMAP驱动
  8. Spring运用到的几种设计模式
  9. Linux系统的安装和Android编译环境的配置
  10. 黑马程序员——多线程的实现(2+1)详解