C/C++的extern
我感觉用extern和不用extern声明变量在连接编译中都是一样的啊,为什么要用extern 这个代码也可以不加extern吗?sh-5.1$ ls
a.cb.c
sh-5.1$ cat a.c
#include <stdio.h>
extern int b;
int main(void) {
printf("%d\n", b);
return 0;
}
sh-5.1$ cat b.c
int b = 123;
sh-5.1$ gcc -g -Wall -o main a.c b.c
sh-5.1$ ./main
123
sh-5.1$
这个代码,试试能否编译过去?
#include <stdio.h>
int main(void)
{
printf("x = %d\n" , x) ;
}
int x = 9 ;
再试试这个呢:
#include <stdio.h>
extern int x ;
int main(void)
{
printf("x = %d\n" , x) ;
}
int x = 9 ; jackz007 发表于 2022-12-23 18:50
这个代码,试试能否编译过去?
再试试这个呢:
我知道extern有这个作用的,可是我问的是连接编译时阿
人造人 发表于 2022-12-23 17:51
这个代码也可以不加extern吗?
大佬,那么在头文件中声明一下不就可以了吗 人造人 发表于 2022-12-23 17:51
这个代码也可以不加extern吗?
噢噢噢噢,我懂了 老沫白 发表于 2022-12-24 09:53
大佬,那么在头文件中声明一下不就可以了吗
可以
页:
[1]