关于extern关键字

关于extern关键字,第1张

关于extern关键字

https://www.jianshu.com/p/111dcd1c0201

https://www.cnblogs.com/tshua/p/5741009.html

以下内容参考上述文章,如有侵权请告知删除,非常感谢以上作者

在一个文件中定义变量和函数,若在其他文件中使用,可以有两种方式:

1、使用头文件,然后声明变量或函数,然后在其他文件中包含此头文件

2、直接在其他文件中extern

extern会涉及到声明问题,最好不要在头文件中定义什么,可能会引起重定义

比如:

#ifndef UNTITLED_FILE_H
#define UNTITLED_FILE_H

int y = 7;

#endif //UNTITLED_FILE_H

会出现错误:CMakeFiles/untitled.dir/file.cpp.o:(.data+0x0): `y'被多次定义
因为多个文件包含此头文件,导致重定义

重点:

在定义变量的时候,extern可以被省略(定义时,默认均省略);在声明变量的时候,这个extern必须添加在变量前,所以有时会让你搞不清楚到底是声明还是定义。或者说,变量前有extern不一定就是声明,而变量前无extern就只能是定义。注:定义要为变量分配内存空间;而声明不需要为变量分配内存空间。

以上内容仅为简略叙述,详细请参考:https://www.cnblogs.com/tshua/p/5741009.html

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5713400.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-18

发表评论

登录后才能评论

评论列表(0条)

    保存