如何通过GDB深入理解C语言编程?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3060个文字,预计阅读时间需要13分钟。
对于那些熟悉高级编程语言如Ruby、Scheme、Haskell等背景的人来说,学习C语言具有一定的挑战性。除了C语言中像手动内存管理和指针等底层特性外,你还需要习惯没有REPL(Read-Eval-Print Loop)的环境。
对于那些具有高级编程语言诸如: Ruby、Scheme、Haskell 等背景的人来说,学习 C 语言是具有挑战性的。除了纠结于 C 语言中像手动内存管理和指针等底层特性外,你必须在没有 REPL ( Read-Eval-Print Loop ) 的条件下完成工作。一旦你已经习惯于在 REPL 环境下进行探索性的编程,必须进行“编写-编译-运行”这样循环实在有点令人生厌。
最近我发现其实可以用 GDB 来作为 C 语言的伪 REPL。我一直尝试使用 GDB 作为学习 C 语言的工具,而不仅仅是用来调试 C 程序,事实上这非常有趣。
这篇文章我的目的就是向你展示 GDB 是一个非常好的学习 C 语言工具。下面我将会向你介绍一些我最喜欢的 GDB 命令,然后我会向你阐述怎样使用 GDB 来理解 C 语言中一个出了名的复杂问题:数组和指针的区别。
GDB 简介
从创建一个简单的 C 程序开始,minimal.c:
int main() { int i = 1337; return 0; }
注意这个程序并没有做任何事情,也没有一条输出指令。
本文共计3060个文字,预计阅读时间需要13分钟。
对于那些熟悉高级编程语言如Ruby、Scheme、Haskell等背景的人来说,学习C语言具有一定的挑战性。除了C语言中像手动内存管理和指针等底层特性外,你还需要习惯没有REPL(Read-Eval-Print Loop)的环境。
对于那些具有高级编程语言诸如: Ruby、Scheme、Haskell 等背景的人来说,学习 C 语言是具有挑战性的。除了纠结于 C 语言中像手动内存管理和指针等底层特性外,你必须在没有 REPL ( Read-Eval-Print Loop ) 的条件下完成工作。一旦你已经习惯于在 REPL 环境下进行探索性的编程,必须进行“编写-编译-运行”这样循环实在有点令人生厌。
最近我发现其实可以用 GDB 来作为 C 语言的伪 REPL。我一直尝试使用 GDB 作为学习 C 语言的工具,而不仅仅是用来调试 C 程序,事实上这非常有趣。
这篇文章我的目的就是向你展示 GDB 是一个非常好的学习 C 语言工具。下面我将会向你介绍一些我最喜欢的 GDB 命令,然后我会向你阐述怎样使用 GDB 来理解 C 语言中一个出了名的复杂问题:数组和指针的区别。
GDB 简介
从创建一个简单的 C 程序开始,minimal.c:
int main() { int i = 1337; return 0; }
注意这个程序并没有做任何事情,也没有一条输出指令。

