C全局变量代码给出编译错误

时间:2017-01-28 03:23:35

标签: c

所以我是c的新手并编写了一些代码,但我不确定为什么我在尝试运行时遇到错误。

 int GlobalVariable=0;
int main()
{
    int LocalVariable=0;  //can be used within main()
    dis();
    printf(GlobalVariable);
    return 1;
}

int dis()
{
    GlobalVariable=5;  //Can be accessed in any functions and made changes to it
}

2 个答案:

答案 0 :(得分:3)

这是printf函数的原型:

int printf(const char * restrict format, ...);

看看你在打字:

int GlobalVariable=0;
printf(GlobalVariable);

答案 1 :(得分:2)

问题是你在没有事先告诉编译器的情况下使用了一个函数。

在这种情况下,您必须提供函数原型,因为函数定义本身是在main

之后提供的
int dis( void ); // function prototype
int main()
{
    ...
}
int dis() // function definition
{
    ...
}

或者,您可以将函数定义放在main()之前。但通常最好在main()之前使用函数原型,并且(通常)将原型放在单独的头文件中更好 - 这样就更容易直接看到主程序而不是打扰其他功能细节。