C stdio.h文件中有错误吗?
我正在尝试用C编写并运行“Hello World”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文件中的所有
在我看来,它在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;
}