Linux程序开发入门(5)

让GCC帮助你更好的工作

上面我们简单介绍了GCC的常用命令行选项,其实GCC的功能比上面提到的那些要丰富得多,GCC对代码的警告、优化、调试等方面提供了丰富的支持,下面我们就从一些例子来看看GCC提供的这些功能。

1.对问题代码提出警告

GCC对程序代码提供了完整的检查功能,由于C/C++语言本身的特点,很多错误都是程序员无意间犯下的,例如使用了未定义的变量、在bool表达式中使用了=而不是==等等问题,利用GCC提供的代码检查功能,我们可以让编译器为我们找到这些问题,避免运行时发生灾难。

首先,我们来看一个“问题代码”

/* test_warning.c We use this file to check the warning facilities provided by GCC*/ #include <stdio.h> #include <stdlib.h>

void main() { /* main should return int*/

int a, b; long long l = 2.2; /* long long type is GNU extension, not standard ANSI / ISO type*/

miss_decl(); /* We call an undeclared function*/

if (a = 0) /* May be we want == here instead of =*/

printf (“a really equals to 0?\n”); if (b != 0)      /* We used uninitialized variables*/ /* %d and “We should put b here” don‘t match*/ printf(“We make a mistake again! b = %d\n”, “We should put b here”);

};

void miss_decl() {

/* /* This type of annotation is prohibited*/

printf(“We should put the declaration before it‘s been used!\n”);

}

上面这些代码故意制造了很多编程中出现的常见问题,接下来,我们就用这段代码来检测一下GCC提供的各种常用的警告设施。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwpffy.html