全局变量必须是static类型这句话对吧
如果要限定外部变量只允许在该文件使用而不允许在其它文件使用,可在外部变量定义前面加上static声明。
例:static int a=3, b=5;
main( ) { … }
f1 ( ) { … }
f2 ( ) { … }
如果不加static,将外部变量作用域扩展到其它文件,变量用extern作声明即可,如下例子,那是不是说明x,y的存储类型不是static?是自动型auto?这与全局变量必须是static类型矛盾啊
P125例:file1.c 定义的变量在file2.c可以引用
P125_1.cpp P125_2.cpp
int x, y ; extern int x, y ;
char ch; extern char ch;
main( ) f1( )
{ x=12; {
y=24; printf(“%d, ”,x);
f1( ); printf(“%d\n”,y);
printf (“%c”, ch); ch=‘a’;
} }
还有这句话 自动变量,auto(默认,可省略),自动局部变量在本函数内有效,(自动全局变量在本文件有效,其他文件可引用,引用时加extern声明。为静态存储,有固定内存单元)是说知道全局变量的类型为static?
懂不懂,不要复制,都没回答到我的问题
追答汗。。好心帮你写这么久。。你能把这些看懂的话变量这些你也懂了,如果看不懂的话就不要刨根问底的问这些东西,我刚学C语言也跟你一样想把什么都搞懂,其实这完全不必要,如果你只想会用的话就自己多写点程序,写多了你自然会用。你想要弄懂原理的话就去学汇编,32位微机原理,总之这是个好心的建议喽。
追问好的,那你给我解释下楼下的回答的对吗
追答所有变量默认都是auto的
追问那全局变量必须是static 类型吗?
你确信?那上面的x,y类型是自动型auto?可是我又看到这句话auto变量只用于定义局部变量,存储在内存中动态存储区。
追答#include
int a; //这个变量就是全局变量
int mian(void)
{
}
它的存储类型是什么
追答auto
追问我又查了资料,全局变量不可能是auto类型的啊。你从哪个知道的全局变量可以是auto类型的
追答关键是会用 纠结这些干嘛 说实话什么时间域 作用域 我当年用C的时候都没怎么看 主要是写代码 不是搞语法 除非你是教师