c语言extern(c语言中文网)
C编译器编译后的函数,为什么要加extern“C”?
若要混用C和C的代码,则所有在C中调用的C代码,必须放在externC{/*C代码*/}内
c语言中extern的意思是什么??库函数为什么不需要exter
这个extern 是个声明他可以在任何地方声明 引用了一个全局变量 (可以试试 在main()函数执行完之后声明 也不会出错)
c语言中的extern是什么,有什么作用啊?
extern表示是外部函数或外部变量,比如:
1、extern void add(int x,inty);表示该函数主体不在当前模块中,在另一个模块中(文件)
2、extern int total;表示该变量在另一个模块总定义过。
一般都把一些经常用到的枚举和变量之类的写在.h头文件中。这样要引用时直接include 头文件名就可以了调用里面所有的枚举和变量了。在大型项目中,引用别的.c文件中的函数则只能用extern,因为.c文件是不能 include的。所以想引用别的.c文件中的函数和全局变量、枚举等等的就只能用extern。extern是全局变量声明
只要声明全局变量就默认 前面加extern(程序员可以不加,但编译器默认加上)
若本文件 引用别的文件中的全局变量 一定要加上extern 声明一下
例如 #include my_
extern int b;//b是在my_中声明了的一个全局变量
这个extern 是个声明他可以在任何地方声明 引用了一个全局变量 (可以试试 在main()函数执行完之后声明 也不会出错)
这样在 工程的总头文件中就不需要考虑 先#include 哪个文件了extern 是变量或函数的申明,告诉编译器在其它文件中这个变量或函数的定义。说明要引用的变量是外部变量,函数是外部函数,就是非本文件中定义的。extern int a;
int main(){
printf(%d\n, a);
int a = 12;上面代码是能正确运行的,a的定义就在该文件中。
extern表示一个函数或变量的声明,并且标识这是一个external链接。external链接表示该函数或变量的是非static的,并不是表示它的定义在别的模块(文件)中......
声明一个函数时,extern可以省略,标准库文件中,函数的声明都是不带extern的。声明变量时不能省略,不然就成了一个未初始化的变量定义。
c11 extern关键词文档:网页链接
C语言中extern用法
#include 12.h/*12.h中放你的其他函数*/
extern int func();/*这句跟用int func();一样,extern只起到标识作用,好让我们知道是外部函数而已*/
main()
你肯定是没加#include 12.h吧,要是没有它,你的程序也不知道去哪func()啊,不能光用extern这个不是让你用extern是链接的时候没到print_string的定义那个函数定义的时候就要加EXTER的
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
推荐阅读
留言与评论(共有 11 条评论) |
本站网友 局域网网速管理软件 | 29分钟前 发表 |
inty);表示该函数主体不在当前模块中,在另一个模块中(文件) 2 | |
本站网友 南昌绿地中央广场 | 28分钟前 发表 |
inty);表示该函数主体不在当前模块中,在另一个模块中(文件) 2 | |
本站网友 男人味道 | 24分钟前 发表 |
所以想引用别的.c文件中的函数和全局变量 | |
本站网友 剑道 | 12分钟前 发表 |
所以想引用别的.c文件中的函数和全局变量 | |
本站网友 黄瓜的用处 | 11分钟前 发表 |
extern只起到标识作用,好让我们知道是外部函数而已*/ main() 你肯定是没加#include 12.h吧,要是没有它,你的程序也不知道去哪func()啊,不能光用extern这个不是让你用extern是链接的时候没到print_string的定义那个函数定义的时候就要加EXTER的 | |
本站网友 配置管理器 | 4分钟前 发表 |
extern void add(int x | |
本站网友 1澳元等于多少人民币 | 28分钟前 发表 |
extern是全局变量声明 只要声明全局变量就默认 前面加extern(程序员可以不加,但编译器默认加上) 若本文件 引用别的文件中的全局变量 一定要加上extern 声明一下 例如 #include my_ extern int b;//b是在my_中声明了的一个全局变量 这个extern 是个声明他可以在任何地方声明 引用了一个全局变量 (可以试试 在main()函数执行完之后声明 也不会出错) 这样在 工程的总头文件中就不需要考虑 先#include 哪个文件了extern 是变量或函数的申明,告诉编译器在其它文件中这个变量或函数的定义 | |
本站网友 钻采设备 | 0秒前 发表 |
标准库文件中,函数的声明都是不带extern的 | |
本站网友 电热水壶 | 9分钟前 发表 |
a); int a = 12;上面代码是能正确运行的,a的定义就在该文件中 | |
本站网友 欧盟峰会 | 3分钟前 发表 |
external链接表示该函数或变量的是非static的,并不是表示它的定义在别的模块(文件)中...... 声明一个函数时,extern可以省略 |