|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- //鱼C论坛——BaysideLizard写于2023年11月15日
- /*
- C语言编译器可以确认4种不同类型的作用域:
- --代码块作用域
- --文件作用域
- --原型作用域
- --函数作用域:goto语句的标签只在一个函数内部生效。
- */
- void fun(void);
- //文件作用域,函数名字从这里到文件结尾起作用。
- int add(int x,int y);//原型作用域,这里的x,y可以与下面函数形参不一样。
- int main()
- {
- int a,b;
- int i = 100;//代码块i1
- {
- int i = 101;//代码块i2
- {
- int i = 102;//代码块i3
- printf("i = %d\n",i);
- }
- //i = 101
- {
- printf("i = %d\n",i);
- int i = 103;//代码块i4
- printf("i = %d\n",i);
- }
- printf("i = %d\n",i);
- }
- printf("i = %d\n",i);
- fun();
- extern int count;
- count++;
- printf("In main,count = %d\n",count);
- printf("Please input a b:");
- scanf("%d %d",&a,&b);
- printf("%d + %d = %d",a,b,add(a,b));
- return 0;
- }
- int count;
- //文件作用域,全局变量count从这里到文件结尾起作用。
- void fun(void)
- {
- count++;
- printf("In fund,count = %d\n",count);
- }
- int add(int a,int b)
- {
- int res;
- res = a + b;
- return res;
- }
- /*定义和声明:
- 定义:该变量还没有,定义只能来一次。
- 声明:该变量已经被定义了,声明可以有很多次。
- 特别的:局部变量既是定义又是声明。
- */
- /*链接属性:
- ·external(外部的)
- --多个文件中声明的同名标识符表示同一个实体。
- ·internal(内部的)
- --单个文件中声明的同名标识符表示同一个实体。
- ·none(无)
- --声明的同名标识符被当作独立不同的实体。
- 只有具备文件作用域的标识符才能拥有external或internal的链接属性,
- 其他作用域的标识符都是none属性。
- 具备文件作用域的标识符默认拥有external属性。
- */
- /*
- 使用static关键字可以使得原先拥有external属性的标识符变为internal属性。
- --只对具有文件作用域的标识符生效。
- --只能修改一次,改成internal就改不回external了。
- */
复制代码
运行结果:
i = 102
i = 101
i = 103
i = 101
i = 100
In fund,count = 1
In main,count = 2
Please input a b:8 9
8 + 9 = 17
Process returned 0 (0x0) execution time : 3.972 s
Press any key to continue.
在FishC学C的第十六天 |
|