介绍与编译运行
翻译整理自 C 语言历史 与 cppreference - C 编译。
1. C 语言简史
- 1972 Dennis Ritchie 在贝尔实验室设计 C,用于重写 UNIX 内核
- 1978 K&R《The C Programming Language》出版
- 1989 ANSI C 标准(C89 / ISO C90)
- 1999 C99(变长数组、
//注释、long long、内联函数) - 2011 C11(
_Static_assert、原子操作、线程支持) - 2018 C17(缺陷修复)
- 2024 C23(更多现代特性)
2. 安装编译器
Linux
sudo apt install gcc clang make
gcc --versionmacOS
xcode-select --install # 自带 clangWindows
- MinGW-w64:
pacman -S mingw-w64-x86_64-gcc - MSVC:装 Visual Studio Build Tools
- LLVM Clang:
choco install llvm
3. 第一个程序 Hello World
hello.c:
#include <stdio.h>
int main(void)
{
printf("Hello, World!\n");
return 0;
}编译与运行:
gcc hello.c -o hello
./hello
# Hello, World!4. GCC 常用参数
| 参数 | 含义 |
|---|---|
-o <name> |
指定输出文件名 |
-O2 / -O3 |
优化 |
-g |
生成调试信息 |
-Wall -Wextra |
开启警告 |
-std=c11 |
指定标准 |
-DNAME=val |
定义宏 |
-I<path> |
头文件搜索路径 |
-L<path> -l<lib> |
库搜索路径与库名 |
完整建议:
gcc -std=c11 -Wall -Wextra -O2 -g hello.c -o hello5. 程序结构
#include <stdio.h> // 预处理指令
#define PI 3.14 // 宏定义
// 函数声明(原型)
int add(int a, int b);
int main(void) // 程序入口
{
int sum = add(1, 2);
printf("%d\n", sum);
return 0;
}
// 函数定义
int add(int a, int b)
{
return a + b;
}- 每个 C 程序必须有且仅有一个
main main返回int,0 表示成功#include把头文件内容插入到当前位置
小结
到此已经能编写、编译、运行 C 程序。下一章学习基本语法。