1 自动化测试:
测试代码重要性不言而喻,通过测试的自动化,生活会变得很轻松。几乎所有的程序员也都在使用自动化测试。C语言的测试框架也很多,
比如AceUnit:http://aceunit.sourceforge.net/projects/aceunit
如果你写的是命令行工具,用的是Unix命令行,可以使用shunit2工具,它允许创建shell脚本来测试脚本和命令。
http://code.google.com/p/shunit2
2 GCC的优化
gcc可以自动进行很多优化,默认情况下是关闭的,因为优化需要耗费大量的时间。一般在发布代码的时候,才会进行优化,通过开启优化选项。
-O :得到第一级别的优化
-O2:提升优化等级
-O3:进一步优化
-Ofast:最高优化,这个要慎用,因为它生成的代码有可能可C标准差别很大。
通过-Wall 可以显示all warning,因为历史原因,并不会显示全部警告,如果要让gcc 这样做,就必须使用-Wextra
gcc souce.c -Wall -Wextra -o fred
如果希望遵循严格的C标准编译,可以使用-Weror ,只要一个警告,就会失败
gcc souce.c -Werror -o fred
3 gdb、gprof、gcov
gdb:允许程序运行期间研究它的代码。可以在命令行中使用,也可以在Xcode或Guile那样的IDE中使用。
gprof:如果程序没有预想的那么快,就需要分析一下它的性能,它可以告诉你哪里最慢。
gcov:覆盖率测试工具,用来检查代码那些部分运行了,哪些没有运行。在写自动化测试的时候特别有用。
4 make 工具
make它很聪明,如果你不告诉它规则,它会自动构建,即使没有makefile,也可以使用make souce.它拥有隐士规则。
变量的使用:可以大大简化makefile,比如把一组标准的命令行选项传给gcc,可以把他们定义成变量:
CFLAGS=-Wall -Wextra -v
app:source.c
gcc source.c $(CFLAGS) -o app
用=定义变量,然后用$提取变量的值。
使用%、^、@
对于: test:test.c
gcc test.c -Wall -o test
可以使用%写一条更通用的“目标/生成方法”
%:%.c
gcc $^ -Wall -o $@
%:根据“文件.c” 创建”文件“
$^:是依赖项的值(*.c)
$@:目标名字
原文地址:http://www.cnblogs.com/ct6816678/p/3719848.html