首页 > 代码库 > C语言工具简介

C语言工具简介

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)

  $@:目标名字