Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.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 stdio.h文件中有错误吗?_C_Compiler Errors_Header_Stdio - Fatal编程技术网

C stdio.h文件中有错误吗?

C stdio.h文件中有错误吗?,c,compiler-errors,header,stdio,C,Compiler Errors,Header,Stdio,我正在尝试用C编写并运行“Hello World” 在我看来,它在stdio头文件中发现了一个语法错误?我不明白发生了什么事。你想这样做: #include <stdio.h> int main(void) { puts("Hello world."); return 0; } #包括 内部主(空) { 放置(“你好世界”); 返回0; } 您的#include指令应该总是放在文件的第一位。当您编写#include时,您告诉预处理器基本上是将某个#u文件中的所有

我正在尝试用C编写并运行“Hello World”


在我看来,它在stdio头文件中发现了一个语法错误?我不明白发生了什么事。

你想这样做:

#include <stdio.h>

int main(void)
{
    puts("Hello world.");
    return 0;
}
#包括
内部主(空)
{
放置(“你好世界”);
返回0;
}
您的
#include
指令应该总是放在文件的第一位。当您编写
#include
时,您告诉预处理器基本上是将某个#u文件中的所有文本复制到您的程序中。例如,
包括
put
函数声明。通过将
作为第一件事包含在文件中,您可以告诉编译器有关
放置的内容,以便以后可以使用它


编辑:感谢@Olaf指出#include是一项指令,而不是一项声明

C标准第7.1.2节标准标题部分说:

如果 使用时,标题应包含在任何外部声明或定义之外,并且 在首次引用其任何功能或对象之前,应首先包括 声明,或声明它定义的任何类型或宏

这意味着不允许在函数体中包含任何标准头


您的代码违反了该规则-它不需要工作。别这样

错误在您编写的代码中。标准库标题将包含在文件范围内。
#include
移动到
main
之前。定义嵌套函数时出错。“在我看来,它在stdio头文件中发现了语法错误”。。。现在,有点…:D注意:
#include
不是一条语句,而是一条预处理器指令。您不能在文件级使用语句。
In file included from ex.c:3:
/usr/include/stdio.h:353:54: error: function definition is not allowed here
__header_always_inline int __sputc(int _c, FILE *_p) {
                                                     ^
1 error generated.
#include <stdio.h>

int main(void)
{
    puts("Hello world.");
    return 0;
}