查看“Gcchowto”的源代码
来自Ubuntu中文
←
Gcchowto
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
== 捕捉错误 == 如上所述,当用 C 或 C++ 编程时,编译器警告是非常重要的助手。为了说明这一点,下面的例子包含一个微妙的错误:为一个整数值错误地指定了一浮点数控制符‘%f’。 <source lang="c"> #include <stdio.h> int main (void) { printf ("Two plus two is %f\n", 4); return 0; } </source> 一眼看去该错误并不明显,但是它可被编译器捕捉到,只要启用了警告选项 '''-Wall'''。 编译上面的程序‘bad.c’,将得到如下的消息: $ gcc -Wall bad.c -o bad main.c: 在函数‘main’中: main.c:5: 警告: 格式‘%f’需要类型‘double’,但实参 2 的类型为‘int’ 这表明文件 ‘bad.c’第 5 行中的格式字符串用法不正确。GCC 的消息总是具有下面的格式 ''文件名:行号:消息''。编译器对错误与警告区别对待,前者将阻止编译,后者表明可能存在的问题但并不阻止程序编译。 本例中,对整数值来说,正确的格式控制符应该是 '''%d'''。 如果不启用 '''-Wall''',程序表面看起来编译正常,但是会产生不正确的结果: <!--现在也会警告--> $ gcc bad.c -o bad $ ./bad Two plus two is 0.000000 显而易见,开发程序时不检查警告是非常危险的。如果有函数使用不当,将可能导致程序崩溃或产生错误的结果。开启编译器警告选项 '''-Wall''' 可捕捉 C 编程时的多数常见错误。
返回
Gcchowto
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
登录
导航
首页
最近更改
随机页面
页面分类
帮助
搜索
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息