当然可以调用全局变量,这个程序报错的原因是 x不是全局变量 ,全局变量就是在函数外面定义的变量,修改如下:
#include
int x;/*注意这里*/
void func(int);
main()
{
/*注意这里*/
func(1);
printf("er");
}
void func(int a)
{
x=a;
}
当然可以。看下面的举例代码及注释:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
char str[]="This is a simple C program.";//定义一个全局数组
void show(char *q){//定义一个显示函数
printf("%s\n",q);
}
int main(void){
show(str);//用全局变量调用显示函数
return 0;
}
可以,但是你的这个X并不是全局变量啊,main也是函数,你在main里面声明的变量,只能在main里边用。你的解决方法是:
1.把x在main外部声明,就在func函数头前边;
2.把void func(int)改成int func(int),然后在main里边把func(1)改成x = func(1),当然func的函数实现也是int func(int a);
x明显是局部变量,作用域只在main函数中
x定义在函数外部时,才是全局变量
比如
#include
void func(int);
int x;
main()
{
int x;
func(1);
printf("er");
}
void func(int a)
{
x=a; (此时的x是外部的x,并非main中的x)
}
void func(int); //void func(int a)
void func(int a)
{
x=a; (这里报错,说x还未定义)
}
这个X是什么类型?X没定义你怎么把a给x
{
int x;
x = a
return x;
}