425 字
1 分钟
【C】开发环境与调试
C 语言标准版本
| 标准 | 说明 |
|---|---|
| C89 / C90 | 最早的 ANSI/ISO 标准,许多教材以此为基础 |
| C99 | 引入 // 注释、变长数组、柔性数组成员、inline 等 |
| C11 | 增加 _Generic、原子类型、可选 VLA 等 |
| C17 | 对 C11 的缺陷修复,无重大新特性 |
| C23 | 最新标准(编译器支持程度因工具链而异) |
实际开发中需确认编译器默认标准(如 gcc -std=c11)。
编译流程
从源文件到可执行文件通常经历四个阶段:
| 步骤 | 命令示例 | 作用 |
|---|---|---|
| 预处理 | gcc -E hello.c -o hello.i | 展开头文件与宏,处理条件编译,删除注释,生成 .i |
| 编译 | gcc -S hello.i -o hello.s | 语法与语义分析,生成汇编 .s |
| 汇编 | gcc -c hello.s -o hello.o | 将汇编转为机器码目标文件 .o |
| 链接 | gcc hello.o -o hello | 合并目标文件与库,生成可执行文件 |
也可一步完成:gcc hello.c -o hello。
调试(GDB)
编译时加 -g 生成调试信息:
gcc -g hello.c -o hellogdb ./hello常用 GDB 命令:
| 命令 | 简写 | 说明 |
|---|---|---|
list | 列出源码 | |
break 行号 | b | 在指定行设断点 |
run | r | 运行程序 |
next | n | 单步,不进入函数 |
step | s | 单步,进入函数 |
print 变量 | p | 打印变量值 |
continue | c | 从断点继续执行 |
finish | 执行完当前函数并返回 | |
quit | 退出 GDB |
注意:程序在断点处暂停时,尚未执行断点所在那一行。
注释
// 单行注释(C99 起)
/* * 多行注释 */多写注释有助于可读性与协作;注释不参与编译,但应与代码同步维护。
标识符命名规则
- 由字母、数字、下划线组成
- 不能以数字开头
- 区分大小写
- 不能使用关键字(如
int、return)
合法示例:count、_temp、value2。非法示例:2value、int。
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时
相关文章 智能推荐
1
【C】变量常量与数据类型
StudyNote 数据类型
2
【C】数组与字符串
StudyNote 讲解一维数组初始化、C 字符串与 NUL 结尾约定,以及 string.h 常用函数与 sizeof。
3
【C】结构体联合体与枚举
StudyNote 结构体内存对齐、联合体共享内存、枚举常量及 typedef 与
4
【C】输入输出与类型转换
StudyNote 介绍 printf、scanf 等标准 I/O 函数,以及赋值、算术隐式转换与强制类型转换的用法与注意点。
5
【C】void与特殊数组类型
StudyNote void 的三种用法、柔性数组成员、变长数组 VLA 与二维数组的存储与传参方式。
