C编译警告
使用编译选项把警告给避免了,这可能隐藏掉一些潜在的致命错误。实际工作中遇到了很多的警告,主要发现以下几类:
-
类在构建时,变量初始化的次序颠倒;
-
有无符号数在作比较;
-
宏定义不正确;
-
定义了没有使用的变量,如果有很多条件宏定义的时候,这个处理要细致一些;
-
结构体和数组的初始化方式不正确,其实是错误的方式,却也只是警告;
-
不小心书写代码引发的警告,有些其实也是错误,不过编译器不能识别出来,例如以下列举的例子;
if(ptr != NULL); // 分号错误的添加
printf("[%s, %d] address: %p \n", __FUNCTION__, __LINE__, ptr);
//当然这里在程序运行时,如果ptr为NULL会引发段错误。若是其它的一些操作,可能一下子根本查不出错误的所在。
if(a=1) //实际上代码的本意是想表达if(a==1),这样写是潜在的错误,其它的逻辑根本执行不到。
/*do something*/
- 函数的形参定义了,在函数体内却没有使用到。
关键字:c
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!