小编Har*_*sha的帖子

C中的第一个可执行语句

主要是C程序中的第一个函数还是第一个可执行语句?如果有全局变量int a=0;怎么办?

我一直被告知主要是一个程序的起点.但是在我看来,赋予某些价值的全局变量又是一个可执行的陈述呢?

c scope initialization variable-assignment

5
推荐指数
3
解决办法
645
查看次数

C中的extern关键字是冗余的吗?

我发现我可以在不使用extern的情况下达到预期的效果(尽管我同意它会给读者一些关于变量的暗示).在某些情况下,使用extern会产生不希望的结果.

xyz.h

int i;
Run Code Online (Sandbox Code Playgroud)

在file1.c

#include "xyz.h"
....
i=10;
....
Run Code Online (Sandbox Code Playgroud)

file2.c中

#include "xyz.h"
main()
{
printf("i=%d\n",i);
}
Run Code Online (Sandbox Code Playgroud)

当然,这是一个大项目,为了简单的理解而将其分解.使用extern关键字,我无法获得理想的结果.实际上,我通过"extern"方法得到变量i的链接器错误.

代码采用"extern"方法,

在file1.c

int i;
main()
{
i=10;
}
Run Code Online (Sandbox Code Playgroud)

file2.c中

extern int i;
foo()
{
printf("i=%d\n",i);
}
Run Code Online (Sandbox Code Playgroud)

这给链接器错误.我只是想知道它为什么在第一种情况下工作,以及在没有使用关键字"extern"的情况下我们无法做到的实际情况.谢谢.

c keyword extern

1
推荐指数
1
解决办法
558
查看次数

标签 统计

c ×2

extern ×1

initialization ×1

keyword ×1

scope ×1

variable-assignment ×1