01 · C 简介与环境
核心要点
- C 诞生于 1972 年,贝尔实验室,丹尼斯·里奇设计,为写 UNIX 操作系统而生。
- 标准演进:K&R → C89/ANSI C → C99 → C11 → C17 → C18。当前最新为 C18。
- C 的定位:系统级语言。操作系统内核、编译器、数据库(MySQL/SQLite)、嵌入式都用它。
- 它深刻影响了 C++、Java、Go、Rust —— 所以你学 Java 时其实一直在用 C 的语法基因。
编译流程(Java 是编译成字节码交给 JVM,C 是直接生成机器码)
hello.c --预处理--> hello.i --编译--> hello.s(汇编) --汇编--> hello.o --链接--> hello.exe
一条命令搞定:
gcc hello.c -o hello # 编译
./hello # 运行(Linux/macOS)
hello.exe # 运行(Windows)
最小程序
#include <stdio.h> /* 引入标准输入输出头文件 */
int main(void) { /* 程序入口,返回值 int */
printf("Hello, World!\n");
return 0; /* 0 表示正常退出 */
}
⚡ Java 对比
| Java | C | |
|---|---|---|
| 编译产物 | .class 字节码 | .exe / 机器码 |
| 运行 | JVM | 操作系统直接跑 |
| 入口 | public static void main(String[] args) |
int main(void) 或 int main(int argc, char *argv[]) |
环境搭建要点(Windows)
- 装编译器:MinGW-w64(提供
gcc)或 MSYS2。 - 编辑器:VS Code + C/C++ 插件,或直接命令行
gcc。 - 验证:
gcc --version。
常见坑
- 忘了
#include <stdio.h>→printf报隐式声明错误。 - 少写
return 0;在main里一般没事,但别养成习惯。