一、先对全局变量的代码做讨论
- 平平无奇的两个文件的代码开始探索
- 平平无奇的现象
- 结论
第一、extern的值可以传递,定义了可以在另一个文件中访问出值;extern变量为定义未赋值时可以是0,这个0(是系统分配的)
第二、在源文件(.c文件)内写函数时,函数前面未加static时,可以认为在作用域源文件(.c文件)内----(这个例子就没在一个源文件中申明)
第三、在hi.c文件中没有引用头文件,也可使用printf函数,有可能说明,编译器在读源文件时:先把没有main函数的源文件放在main函数的上面和main函数源文件的头文件下面部分;简单的说,下次要在main函数源文件的上面写的很多的话,可以建立一个源文件,不引用头文件,直接写,默认是main函数上面和main源文件下头引用的西面部分。
二、对局部变量的代码做讨论
局部变量我感觉没啥谈的,但是要把关键字搞清楚,啥清楚了
extern关键字:extern的典型例子1;extern典型例子2;extern关键字的看法,主要针对extern函数的看法
register关键字:register使用注意点;register的例子
- 代码
//extern和局部变量的相关关系,应用\
extern定义的全部变量,上面提了一点\
extern定义函数时,上面也说了
#include <stdio.h>
int val = 9;
int max(int x,int y);
int foo()
{
int val = 2;
{
extern int val; //extern解决局部变量和全局变量重名的解决方法---花括号内加extern定义该变量
printf("val_foo = %d\n", val);
}
return val;
}
int main()