关于external的用法
/*题目:学习使用 external 的用法。
*/
#include<stdio.h>
int a,b,c;
void add()
{
int a;
a=3;
c=a+b;
}
void main()
{
a=b=4;
add();
printf("The value of c is equal to %d \n", c );
}
此题是“C语言经典例题”里的一道题目,但题目里明明没有看到关于external的用法,不知是我没有看明白,还是什么原因,各位明白题目意思的“鱼友”们,欢迎补充......................................
期待中........................... 恰好今天讲到了 external,不妨可以看一下 -> http://blog.fishc.com/5135.html 链接属性是个什么东西呢?
我们知道大型的程序都有好些个源文件构成,那么在不同文件中的同名标识符,编译器是如何处理的呢?这就要看链接属性了。
在C语言中,链接属性一共有三种:
[*]external(外部的)—— 多个文件中声明的同名标识符表示同一个实体
[*]internal(内部的)—— 单个文件中声明的同名标识符表示同一个实体
[*]none(无)—— 声明的同名标识符被当作独立不同的实体
默认情况下,具备文件作用域的标识符拥有 external 属性。也就是说该标识符允许跨文件访问。对于 external 属性的标识符,无论在不同文件中声明多少次,表示的都是同一个实体。
小甲鱼 发表于 2016-11-3 04:05
链接属性是个什么东西呢?
我们知道大型的程序都有好些个源文件构成,那么在不同文件中的同名标识符,编 ...
个人认为此题中只涉及到了全局变量和变量的作用域,并没有关于external的用法。
或者是我的认识有些肤浅? 小甲鱼 发表于 2016-11-3 04:05
链接属性是个什么东西呢?
我们知道大型的程序都有好些个源文件构成,那么在不同文件中的同名标识符,编 ...
个人认为此题中只涉及到了全局变量和变量的作用域,并没有关于external的用法。
或者是我的认识有些肤浅? 小甲鱼 发表于 2016-11-3 04:04
恰好今天讲到了 external,不妨可以看一下 -> http://blog.fishc.com/5135.html
哇!哇!哇!
小甲鱼老师的回复,好激动...................... 上面不是定义了3个全局变量a,b,c么,然后你在创建一个.cpp,在这个新的.cpp里面去引用这3个全局变量,试着在新的.cpp里面改变他们的值,看看main()中的打印会不会有变化。
external的核心就是跨文件引用。前缀有external的只是一个写名字的过程,不是创造一个实体的过程。详细的看楼上的回复。
页:
[1]