C 是什么
C vs C++、标准、第一个程序。
25 分钟
C 是什么
C 是操作系统、嵌入式与高性能库的基石语言。对照 /roadmaps/c 路线图,本 track 从语法、指针、构建到调试,系统覆盖 C 语言核心能力。若已学 Java,可把 C 理解为「编译为机器码、无 GC、贴近硬件」的过程式语言。
学习目标
- 理解 C 在系统软件生态中的位置
- 区分 C 与 C++、Java 的范式差异
- 搭建编译环境并运行第一个 C 程序
- 明确本 track 在 /roadmaps/c 中的位置
核心概念
C 的典型应用
| 领域 | 代表 |
|---|---|
| 操作系统 | Linux 内核、Windows 底层 |
| 嵌入式 | 单片机固件、驱动 |
| 运行时 | Python 解释器、JVM 部分实现 |
| 高性能库 | SQLite、Redis、OpenSSL |
C 诞生于 1972 年,C11 是当前教学与工业界常用标准。语法简洁,但内存与未定义行为需开发者自行负责。
开发环境
推荐 GCC 或 Clang,Windows 可用 MinGW-w64 或 Visual Studio 的 C 工具链:
gcc --version
clang --version
第一个程序
main.c:
#include <stdio.h>
int main(void) {
const char *name = "CodeRoadMap";
int year = 2026;
printf("Hello, C!\n");
printf("Track: %s (%d)\n", name, year);
return 0;
}
编译运行:
gcc -std=c11 -Wall -Wextra main.c -o hello
./hello # Windows: hello.exe
#include在编译期展开头文件,类似 Java 的 import 但无包系统- 程序入口是全局函数
main,返回0表示成功 printf来自标准库<stdio.h>,C 无内置字符串类型
与 C++/Java 对照
| 维度 | C | C++ | Java |
|---|---|---|---|
| 范式 | 面向过程 | 多范式 + OOP | 面向对象 |
| 内存 | malloc/free | RAII、智能指针 | GC |
| 字符串 | char 数组 / 指针 | std::string | String |
| 编译产物 | 机器码 | 机器码 | 字节码 + JVM |
| 标准库 | 较小(stdio、stdlib) |