Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
给出编译错误的C全局变量代码_C - Fatal编程技术网

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

给出编译错误的C全局变量代码,c,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 an

所以我是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
}

问题是,您使用函数时没有先告诉编译器

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


或者,您可以将函数定义放在main之前。但通常情况下,在main之前有函数原型会更好,而且通常将原型放在一个单独的头文件中会更好,这样就更容易直接查看主程序,而不必担心其他函数细节。

以下是printf函数的原型:

int printf(const char * restrict format, ...);
看看你在输入什么:

int GlobalVariable=0;
printf(GlobalVariable);

在header.h文件中包含声明/protype函数,而不是源代码。如果需要全局变量,请在源文件中使用类似misc.h{extern int global_variable;/blah blah blah blah variable*/}的内容,包括misc.h int global_variable=37;将包含传递给其他源文件。通常最好在问题中包含完整的错误消息。printf%d\n,GlobalVariable;也许你最好学习/询问错误消息…因为这是C,你应该使用int disvoid声明;表示dis不带参数。@user3386109问题与缺少的函数原型无关?如果没有原型,它甚至不会compile@user3386109我忽略了已经回答过的printf问题——但原型肯定是相关的——不知道你为什么建议otherwise@artm这是值得调用的,但它不是无效代码。但是int是无效的;vs int dis是一个您应该更改的命令。@user3386109哈哈,这就是为什么我看到第一个错误作为隐式声明出现在我面前。。错误,我完全忽略了,向下看printf行..代码在调用printf之前将GlobalVariable更改为5,但是是的,这才是真正的问题。
int GlobalVariable=0;
printf(GlobalVariable);