C语言中的include问题
发布网友
发布时间:2022-05-14 14:38
我来回答
共4个回答
热心网友
时间:2023-10-20 22:49
全局变量的作用区域是从定义位置到程序结束,要想改变全局变量的作用域,就得用到extern
你可以在std.c这文件中先用extern声明一个外部变量,告知系统在本文件函数中用到的全局变量定义在外部文件,这样就可以在out.c中#include"std.c"这句话下面进行全局变量的定义,而且作用域也可以到达std.c
例如我在std.c文件中需要用一个全局变量,但我又想在out.c中定义它
***std.c**
extern A;//本文件中需要用的全局变量A,告知系统定义在外部文件
int fun()
{
....
}
***out.c***
#include"std.c"
int A;//本文件定义的全局变量A
int main()
{
...
{
热心网友
时间:2023-10-20 22:49
函数体用到的全局量,它的声明 应当 在这个函数体之前。
例如正确的:
int xx;
int fun() {return xx;}
void main()
{
xx = 1;
printf("%d", fun());
}
例如错误的:
int fun() {return xx;}
int xx;
void main()
{
xx = 1;
printf("%d", fun());
}
-------------
所以你要看 有关函数体 和 全局量具体 位置。
std.c 要用的全局量要放到 #include"std.c" 之前。
main() 用的全局量要放到 main() 之前 就可以了。
热心网友
时间:2023-10-20 22:50
可以,没有这要求
只是函数里的变量定义要在其他语句之前
热心网友
时间:2023-10-20 22:50
小人物我看课本得到这个结论:全局变量从定义开始生效,直到所在源文件结束,所以,我认为它所定义的位置应该是比较随意的!(extern声明)
但是,将全局变量声明写在函数体的前面便于程序的编译,更加有益于以后程序的阅读,增加程序可读性!