入门导览与第一个程序
本节目标
从 C23 工具链、第一个完整程序到编译运行命令,建立可独立继续查询 C 手册的起点。
这是一个面向查询的起点:先确认编译器,再读懂一个完整程序,最后掌握“源文件 → 编译 → 可执行文件 → 运行”的最短闭环。本文以 C23 为版本基线;不同编译器对新标准的实现进度可能不同,遇到兼容问题时应先检查编译器版本和特性支持。
工具链与命令行
最小工具链只需要文本编辑器、C 编译器和终端。本文统一用 cc 代表系统默认 C 编译器;它通常指向 Clang 或 GCC。
cc --version
只要命令能够输出编译器名称和版本,就可以继续。本文的默认编译选项是:
-std=c23 -Wall -Wextra -Wpedantic
-std=c23:请求使用 C23 语言模式。-Wall -Wextra -Wpedantic:打开常见问题和标准一致性警告。- 不使用
-Werror:学习阶段先看清警告,不把不同编译器的非关键差异直接升级为失败。
标准和实现进度可分别查询 WG14 的 C23 页面 与 Clang C 状态表。
第一个完整程序
hello.c
#include <stdio.h>
int main(void) {
puts("Hello, C23!");
return 0;
}
逐行看这个程序:
#include <stdio.h>声明标准输入输出接口,puts在其中声明。int main(void)是程序入口;void明确表示它不接收参数。puts("Hello, C23!")输出字符串,并自动追加换行。return 0向运行环境报告程序正常结束。
main 的返回类型应为 int。不要省略 stdio.h 后直接调用 puts;现代 C 不允许依赖隐式函数声明。
编译与运行
在 hello.c 所在目录执行:
cc -std=c23 -Wall -Wextra -Wpedantic hello.c -o hello
./hello
预期输出:
Hello, C23!
第一条命令把源文件翻译并链接成名为 hello 的可执行文件;只有编译成功,第二条命令才有目标可运行。Windows 环境通常运行 hello.exe,命令形式由终端和工具链决定。
常见故障可以按顺序排查:
| 现象 | 优先检查 |
|---|---|
cc: command not found | 编译器是否安装,终端是否能找到它 |
不认识 -std=c23 | 编译器是否过旧;临时确认其支持的 C 标准模式 |
找不到 hello.c | 当前目录和文件名是否正确 |
| 编译成功但无法运行 | 可执行文件名、当前目录前缀和执行权限 |
| 出现 warning | 先读第一条警告;不要只隐藏警告选项 |
后续阅读路线
零基础读者先记住三件事:声明决定名字和类型,表达式完成计算,语句控制执行。接下来按“基本类型与对象 → 运算符与表达式 → 控制流 → 函数 → 数组和字符串 → 指针”的顺序阅读;已经有基础时,可以直接回到 C 手册首页按任务或关键词定位。
下一章是基本类型、对象、声明与初始化,它会把本页示例中的 int、对象定义和初始化规则展开。
当一个示例需要完整编译时,本手册会展示仓库中同一份受测源码。正文里的短片段只用于解释局部语法,不保证脱离上下文后独立运行。