跳到主要内容

入门导览与第一个程序

本节目标

从 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、对象定义和初始化规则展开。

当一个示例需要完整编译时,本手册会展示仓库中同一份受测源码。正文里的短片段只用于解释局部语法,不保证脱离上下文后独立运行。