📄 新建 文本文档 (4).txt
字号:
文件头:
6、if 语句对出错的处理
———————————
我看见你说了,这有什么好说的。还是先看一段程序代码吧。
if ( ch >= '0' && ch <= '9' ){
/* 正常处理代码 */
}else{
/* 输出错误信息 */
printf("error ......\n");
return ( FALSE );
}
这种结构很不好,特别是如果“正常处理代码”很长时,对于这种情况,最好不要用else
。先判断错误,如:
if ( ch < '0' || ch > '9' ){
/* 输出错误信息 */
printf("error ......\n");
return ( FALSE );
}
/* 正常处理代码 */
......
这样的结构,不是很清楚吗?突出了错误的条件,让别人在使用你的函数的时候,第一眼
就能看到不合法的条件,于是就会更下意识的避免。
7、头文件中的#ifndef
——————————
千万不要忽略了头件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两
个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件
,于是问题来了,大量的声明冲突。
还是把头文件的内?/textarea><BR>
<table width=756 border=0>
<tr><td width=1 bgcolor=#B0B0B0></td><td>
<script type="text/javascript"><!--
google_ad_client = "pub-8055710228382273";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
google_ad_channel ="0099118804";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "333333";
google_color_url = "666666";
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</td>
<td width=15 bgcolor=#E4E0D8></td></tr></table>
<textarea cols=105 rows=12>文件尾:
时才去管他,这样一来,就只会有一个err
msg存在于执行文件中,而且,这样做很利于封装。
我曾遇到过的最疯狂的事,就是在我的目标文件中,这个errmsg一共有112个副本,执行文
件有8M左右。当我把errmsg放到C文件中,并为一千多个C文件加上了extern的声明后,所
有的函数库文件尺寸都下降了20%左右,而我的执行文件只有5M了。一下子少了3M啊。
[ 备注 ]
—————
有朋友对我说,这个只是一个特例,因为,如果errmsg在执行文件中存在多个副本时,可
以加快程序运行速度,理由是errmsg的多个复本会让系统的内存换页降低,达到效率提升
。像我们这里所说的errmsg只有一份,当某函数要用errmsg时,如果内存隔得比较远,会
产生换页,反而效率不高。
生副本导致执行文件尺寸变大,不仅增加了系统装载时间,也会让一个程序在内存中占更
多的页面。而对于errmsg这样数据,一般来说,在系统运行时不会经常用到,所以还是产
生的内存换页也就不算频繁。权衡之下,还是只有一份errmsg的效率高。即便是像logmsg
这样频繁使用的的数据,操作系统的内存调度算法会让这样的频繁使用的页面常驻于内存
,所以也就不会出现内存换页问题了。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -