回 帖 发 新 帖 刷新版面

主题:老谭书中说的例子和我实践的不一样啊,望高手指点

[color=FF0000][size=4]老谭书中说static可以固定住全局变量,不被后面的extern int A文件所用,可是还是一样能用啊,不知道为什么?
好像定义了全局变量,这个extern并没有什么用途,望高手指点,谢谢了。使用的软件是WIN-TC[/size][/color]

#include <stdio.h>
static int A;
void main()
{
int p(int n);
int a,b,c;
scanf("%d%d",&A,&b);
a=p(b);
printf("%d**%d=%d\n",A,b,a);
getch();
}

extern int A;
int p(int n)
{
int i,y=1;
for(i=1;i<=n;i++)
y=y*A;
return(y);
}

回复列表 (共5个回复)

沙发

这个extern到底如何用

板凳

extern是外部变量,允许使用别的文件中声明的变量,只有在跨文件的声明时候才能看出作用
static静态全局变量是指这个全局变量不许别的文件通过extern来使用
你都写在一个文件里,当然看不出意义了

3 楼

每每当我遗忘一些东西的时候,雪光风剑都能一语中的得给我提示。赞

4 楼

如果你在file1中定义了一个MAx函数,或者变量,用来求最大值,那么你在这个file2里就要加上#include "file1.c",然后进行extern MAx ,书上说,不加#include “file1.c"可以,但是,我的不是很正确,反正我是加入了#include "file1,c"之后才完成了,注意不要<>否则会寻找库函数,而忽视你的自己变得程序

5 楼

ls是不是在vc做的,如果是vc,需要文件在同一个工程里才会找过去

我来回复

您尚未登录,请登录后再回复。点此登录或注册