中易网

C语言怎样定义和声明全局变量和函数最好?

答案:1  悬赏:0  
解决时间 2021-01-23 03:01
C语言怎样定义和声明全局变量和函数最好?
最佳答案
首先, 尽管一个全局变量或函数可以(在多个编译单元中) 有多处“声明”, 但是“定义” 却只能允许出现一次。定义是分配空间并赋初值(如果有) 的声明。最好的安排是在某个相关的.c 文件中定义, 然后在头文件(.h) 中进行外部声明, 在需要使用的时候, 只要包含对应的头文件即可。定义变量的.c 文件也应该包含该头文件, 以便编译器检查定义和声明的一致性。这条规则提供了高度的可移植性: 它和ANSI C 标准一致, 同时也兼容大多数ANSI 前的编译器和连接器。Unix 编译器和连接器通常使用“通用模式” 允许多重定义, 只要保证最多对一处进行初始化就可以了; ANSI C 标准称这种行为为“公共扩展”, 没有语带双关的意思。
可以使用预处理技巧来使类似DEFINE(int, i);的语句在一个头文件中只出现一次, 然后根据某个宏的设定在需要的时候转化成定义或声明。但不清楚这样的麻烦是否值得。如果希望让编译器检查声明的一致性, 一定要把全局声明放到头文件中。特别是, 永远不要把外部函数的原型放到.c 文件中: 通常它与定义的一致性不能得到检查, 而矛盾的原型比不用还糟糕。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我开天书赚了吧!
梨温高速公路的经济意义
有手艺好的师傅吗
音箱可以清洁么?
冰点脱毛临沂哪里做的好?
7岁男孩睡觉打呼噜咬牙
怀孕几个月显怀呢?
网游高薪最多的多少钱
无线网卡找不到信号网络应该怎么处理?
如何断定矮小症是家族性遗传导致的?矮小症分
因为盗窃罪被刑事拘留了,偷小区里五个摄像头
我今年13周岁,女生 已发育 150 求长高方法
胆汁酸高的原因有哪些
lol琴瑟仙女邪恶图
1945年中国领土上三个政权的实力怎么排,满洲
推荐资讯
这算瘢痕体质吗,手上受伤也没这样的,这个是
客房打扫怎么样?有宝妈做过客房打扫的工作吗
0.84除以12的解题思路
夏天,老人脚后跟痛该怎么办?
凯德广场停车场(入口)(南海大道北75号凯德广
怎么在电子表格里自动求积
陽生補子的意思是什么?陽生補子的释义是什么
宝宝大便干燥的家庭护理法
指纹密码锁对房地产商有什么作用
英语问题(简单翻译)
房子买在10楼怕路煞吗,楼房南北通透,正南向
access用“选择查询”查询平均值以及条件查询
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?