C语言v13 Xcode+终端gcc编译hello world报missing terminating '错误
问题根因
你遇到的编译错误和你写的C代码本身无关,核心问题是你存储的源文件不是纯文本格式,是富文本格式(RTF)。报错首行的{\rtf1\ansi\ansicpg1252\cocoartf2580是RTF格式的头部标记,说明你用的编辑器(比如Mac自带的「文本编辑」默认模式)把你写的代码连带字体、排版等富文本信息一起存成了RTF文件,只是手动改了后缀名为.c,gcc无法识别RTF格式的内容,才会抛出语法错误。
解决方案
- 首先替换你当前使用的富文本编辑器,改用专门的代码编辑器或者纯文本编辑器,比如VS Code、Sublime Text、Notepad++都可以,这类编辑器默认保存的就是无格式的纯文本文件,适合写代码。
- 如果你坚持使用系统自带的文本编辑工具,需要先修改默认设置:以Mac的「文本编辑」为例,打开顶部菜单栏的「文本编辑」-「偏好设置」-「新建文稿」标签页,将格式选项从「富文本」切换为「纯文本」后再新建代码文件。
- 你当前已有的
helloworld.c文件无法直接修改后缀修复,需要把你写的C代码内容复制出来,粘贴到纯文本编辑器中,重新保存为后缀为.c的纯文本文件,再用gcc编译即可正常运行。
额外优化建议
你写的C代码是老式C的语法,标准C规范中main函数需要明确声明返回值类型,优化后的写法如下:
#include <stdio.h> int main() { printf("hello, world\n"); return 0; }
这个修改和本次报错无关,只是符合现代C语言的编码规范,避免后续编译器抛出返回值相关的警告。
内容的提问来源于stack exchange,提问作者Chun Chung Chau
相关产品推荐
相关产品推荐

