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

    int main(int argc, char *argv[])
{
    #include <stdio.h>
    puts("Hello world.");

    return 0;
}

但是,我在终端中始终收到以下错误:
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.

在我看来,这是在stdio header 文件中出现语法错误?我不明白发生了什么。

最佳答案

您想做这样的事情:

#include <stdio.h>

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

您的#include指令几乎应该始终排在文件的第一位。编写#include <some_file>时,是在告诉预处理器将所有文本从some_file复制到程序中。例如,<stdio.h>包括puts函数声明。通过将<stdio.h>作为文件的第一件事,您可以告诉编译器有关puts的信息,以便以后可以使用它。

编辑:感谢@Olaf指出#include是指令而不是语句

关于c - stdio.h文件错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42688440/

10-11 21:03