有用的C语言工具
用于检查源代码的工具
用于检查可执行文件的工具
帮助调试的工具
性能优化辅助工具
请仔细研究这些工具,如果你花15分钟时间对每个工具进行一下试验,将来在解决Bug问题时,它会大大节约你的时间。
医生可以使用X射线、声谱仪、内窥镜和探查术来查看病人的身体内部。这些上面这些工具就是软件世界的X射线。
如果你工作于操作系统的内核模式,则无法使用绝大多数运行时工具,因为内核并不像用户进程那样运行。可以使用编译时工具如lint,但除此之外我们只能使用石刀和燧斧了:将有序模式放入内存中,看看它们何时被覆盖(最常使用的两个是十六进制常量deadbeef和abadcafe),使用printf或类似的函数并记录跟踪信息。
帮助你识别硬件的工具
只适用于高级学员阅读的材料
对智者之语:可以把汇编代码嵌入到C代码中。这通常只用于深入操作系统核心非常依赖机器的任务。例如设置某个特别的寄存器,把系统的状态从管理员模式转变为用户模式。现在,我们把一条no-op(或其他指令)插入到使用SunPro SPARCompiler的C函数中:
banana() { asm("nop"); }
下面是如何在PC中使用Microsoft C嵌入汇编语言指令:
-
__asm mov ah,
2
-
__asm mov dl,
43h
可以在汇编代码前冠以关键字“__asm”,也可以只使用该关键字一次,把所有的汇编代码放入一对花括号内,如下:
-
__asm
{
-
mov
ah, 2
-
mov
dl, 43h
-
int
21h
-
}
编译器并不会对代码作多少检查,所以很容易创建崩溃的程序。但这是一种学习某种机器指令集很好的实践方法。请看一下SPARC结构手册、汇编程序手册(大部分用于讲述语法和指导)和某个SPARC销售商所提供的数据书籍,如Cypress Semiconductor的SPARC RISC User's Guide。
本文摘自《C专家编程》
C代码。C代码运行。运行码运行…请!
——Barbara Ling
所有的C程序都做同一件事,观察一个字符,然后啥也不干。
——Peter Weinberger
《C专家编程》展示了最优秀的C程序员所使用的编码技巧,并专门开辟了一章对C++的基础知识进行了介绍。
书中C的历史、语言特性、声明、数组、指针、链接、运行时、内存以及如何进一步学习C++等问题进行了细致的讲解和深入的分析。全书撷取几十个实例进行讲解,对C程序员具有非常高的实用价值。
本书可以帮助有一定经验的C程序员成为C编程方面的专家,对于具备相当的C语言基础的程序员,本书可以帮助他们站在C的高度了解和学习C++。
转载:https://blog.csdn.net/epubit17/article/details/111052158