c - #include <stdio.h> 中的主题标签无法编译(C 编程)

标签 c header syntax-error

我在第一次尝试时用 C 编写了我的第一个程序,没有任何问题,现在我想要一个新的工作区和一个新的项目,在我写任何东西之前它就南下了。

#include <stdio.h>

int main(int argc, char **argv)
{
    printf("hello world\n");
    return 0;
}

上面的代码应该只打印出“hello world”。相反,我收到以下错误代码:

C:\Users\DavidH\Desktop\bingolotto\main.c:1
(function (exports, require, module, __filename, __dirname) { #include <stdio.
                                                              ^
SyntaxError: Unexpected token ILLEGAL
    at exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:443:25)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
    at node.js:814:3
Press any key to continue . . .

我猜我有一些错误的目录或类似的东西,但我已经创建了新的工作区并尝试了至少两个新项目但没有成功。

我真的很想知道这里发生了什么:)

最佳答案

您实际上需要使用 C compiler (不是像 node.js 这样的东西)。我建议使用 GCC在命令行上,例如在终端中(gcc 的程序参数顺序很重要)。我建议启用所有警告和调试信息(默认情况下未启用),因此编译 with :

 gcc -Wall -Wextra -g helloworld.c -o helloworld.exe

改进您的代码以完全不收到任何警告。

阅读documentation每个使用过的函数(例如 printf 的),即使一开始你并不完全理解它。下载 C11 的规范,例如n1570 ,并查看内部并引用它。

scaredundefined behavior .这很棘手(您的 C 程序显然在大多数时间似乎都能正常工作,但仍然非常错误和错误)。

学习使用调试器,例如use gdb (也许还有其他工具,例如 valgrind )。

您可能应该学习使用一些 version control系统(我推荐 git )和一些 build automation工具(例如 GNU makeninja )。

请注意,编码约定和风格在 C 语言中非常重要(参见示例 this)。

附言。您可能会考虑安装一些 Linux distribution在您的笔记本电脑上,它对学生和开发人员非常友好,并且主要由 free software 制成(一些对新手和/或专家 C 开发人员非常有帮助,既作为工具又作为示例)。您还应该阅读(以获取灵感)一些现有的源代码 free software项目(例如 github )。

关于c - #include <stdio.h> 中的主题标签无法编译(C 编程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47750017/

相关文章:

C - 确定所有偶数位是否都设置为 1

c - 过滤 pcap 转储文件中的数据包

c - 如何解决头文件之间的这种相互依赖关系?

mysql - 我对 DataGrip 进行了错误检查,但是当我尝试运行它时,sql 文件仍然生成语法错误

c - 现在用 C 编写了哪些类型的应用程序?

objective-c - Shell脚本语法高亮库

c++ - 由于嵌套不能#include,不能使用类原型(prototype)

c++ - 给定一个源文件,有没有办法让 gcc 只返回直接包含的头文件列表?

python - 有人能帮我解决为什么会发生这种情况吗? Python无效语法错误

json - pg nodejs 包结果为 'invalid input syntax for type json'