c*******y 发帖数: 3529 | 1 用“NULL; ”表示空语句也是某本教科书上说的,
我只管摘抄,不负责对错。
下面一段来自《微软c 编程精粹----第1章 假想的编译程序 》
===============================
我们从程序的缩进情况就可以知道while表达式后由的分号肯定是个错误,但编译
程序却认为这是一个完全合法的while语句,其循环体为空语句。由于有时需要空语句
,有时不需要空语句,所以为了查出不需要的空语句,编译程序常常在遇到空语句时给
出一条可选的警告信息,自动警告你可能出了上面的错误。当确定需要用空语句时,你
就用。但最好用NULL使其明显可见。例如:
char* strcpy(char* pchTo, char* pchFrom)
{
char* pchStart = pchTo;
while(*pchTo++ = *pchFrom++)
NULL;
Return(pchStart);
} |
|
c*******y 发帖数: 3529 | 2 用“NULL; ”表示空语句也是某本教科书上说的,
我只管摘抄,不负责对错。
下面一段来自《微软c 编程精粹----第1章 假想的编译程序 》
===============================
我们从程序的缩进情况就可以知道while表达式后由的分号肯定是个错误,但编译
程序却认为这是一个完全合法的while语句,其循环体为空语句。由于有时需要空语句
,有时不需要空语句,所以为了查出不需要的空语句,编译程序常常在遇到空语句时给
出一条可选的警告信息,自动警告你可能出了上面的错误。当确定需要用空语句时,你
就用。但最好用NULL使其明显可见。例如:
char* strcpy(char* pchTo, char* pchFrom)
{
char* pchStart = pchTo;
while(*pchTo++ = *pchFrom++)
NULL;
Return(pchStart);
} |
|
c*******y 发帖数: 3529 | 3 最后一贴:
摘抄一段那本教科书上说的,确实用了“NULL;”
对不对我就不知道了。至少WD4没瞎说
===========================================================
我们从程序的缩进情况就可以知道while表达式后由的分号肯定是个错误,但编译
程序却认为这是一个完全合法的while语句,其循环体为空语句。由于有时需要空语句
,有时不需要空语句,所以为了查出不需要的空语句,编译程序常常在遇到空语句时给
出一条可选的警告信息,自动警告你可能出了上面的错误。当确定需要用空语句时,你
就用。但最好用NULL使其明显可见。例如:
char* strcpy(char* pchTo, char* pchFrom)
{
char* pchStart = pchTo;
while(*pchTo++ = *pchFrom++)
NULL;
Return(pchStart);
} |
|
c*******y 发帖数: 3529 | 4 最后一贴:
摘抄一段那本教科书上说的,确实用了“NULL;”
对不对我就不知道了。至少WD4没瞎说
===========================================================
我们从程序的缩进情况就可以知道while表达式后由的分号肯定是个错误,但编译
程序却认为这是一个完全合法的while语句,其循环体为空语句。由于有时需要空语句
,有时不需要空语句,所以为了查出不需要的空语句,编译程序常常在遇到空语句时给
出一条可选的警告信息,自动警告你可能出了上面的错误。当确定需要用空语句时,你
就用。但最好用NULL使其明显可见。例如:
char* strcpy(char* pchTo, char* pchFrom)
{
char* pchStart = pchTo;
while(*pchTo++ = *pchFrom++)
NULL;
Return(pchStart);
} |
|
W**********4 发帖数: 322 | 5 哈哈,被我抓住了。
对于差的程序员,if();是个debug的问题。
对于好的程序员,if();还真是个编译的问题.
因为编译器是可以对空语句warning的,如果你把warning的level
设到最高级,if();编译是通不过的,也不存在留到debugging的问题了。
其实需要空操作的场合非常少,真的需要,要使用NULL。
一个好的程序员应该尽可能在编译阶段把问题解决,而不是留给debug.
一个懒惰的程序员喜欢不看warning,有问题再查。
我这个可不是"瞎解释", 这可是高质量c语言编写的一个基本的技巧:
http://www.zeuux.com/blog/content/4230/
我不会随随便便说人不懂,或者瞎说,我的论证都有文献支持。
你的文献呢? |
|
W**********4 发帖数: 322 | 6 你随便google一下空语句吧,讨论很多。
我也就随便把google前几个相关的贴出来。
日记是谁写的有什么关系,年龄又有什么关系?
有理就行。如果你认为无理,请你就事论事
不要针对人,或者不要针对年龄。
人家爱因斯坦几岁弄得相对论?你要不要也google一下。
21岁还是幼齿, 你口味真重 |
|
|
a***e 发帖数: 27968 | 8 这种for loop带空语句早年拿来当延时的
少个;真成bug也是有的,也不好查 |
|
c*******y 发帖数: 3529 | 9 教科书只管语法,可不管人家编译器怎们弄。
死读书不如无书啊
这个VC确确实实是没编译通过的啊,
你要不信你自己也试试吧。
我出了很无聊的测试了一下,我更无聊查了一下,
原来人家关于空语句自动警告的说法来源于一本教科书
《微软c 编程精粹----第1章 假想的编译程序 》
其实人家说的东西都是没有什么大问题 |
|
d***a 发帖数: 13752 | 10 嗯?你不是说过“最后一帖”了吗?!
Steve Maguire在微软写的这个东西,Google一下就出来了
他把空语句写成"NULL;"的做法,我个人的意见,是拙劣的,有好几个问题
其中一个显著的问题是,如果打开常用的报警,象-Wall
就会对"NULL;"报错,造成无必要的报警
飞马到哪里去了?开了这样一个帖子,引出这许多初级问题,怎么就一走了之了 |
|
W**********4 发帖数: 322 | 11 哈哈,被我抓住了。
对于差的程序员,if();是个debug的问题。
对于好的程序员,if();还真是个编译的问题.
因为编译器是可以对空语句warning的,如果你把warning的level
设到最高级,if();编译是通不过的,也不存在留到debugging的问题了。
其实需要空操作的场合非常少,真的需要,要使用NULL。
一个好的程序员应该尽可能在编译阶段把问题解决,而不是留给debug.
一个懒惰的程序员喜欢不看warning,有问题再查。
我这个可不是"瞎解释", 这可是高质量c语言编写的一个基本的技巧:
http://www.zeuux.com/blog/content/4230/
我不会随随便便说人不懂,或者瞎说,我的论证都有文献支持。
你的文献呢? |
|
W**********4 发帖数: 322 | 12 你随便google一下空语句吧,讨论很多。
我也就随便把google前几个相关的贴出来。
日记是谁写的有什么关系,年龄又有什么关系?
有理就行。如果你认为无理,请你就事论事
不要针对人,或者不要针对年龄。
人家爱因斯坦几岁弄得相对论?你要不要也google一下。
21岁还是幼齿, 你口味真重 |
|
|
a***e 发帖数: 27968 | 14 这种for loop带空语句早年拿来当延时的
少个;真成bug也是有的,也不好查 |
|
c*******y 发帖数: 3529 | 15 教科书只管语法,可不管人家编译器怎们弄。
死读书不如无书啊
这个VC确确实实是没编译通过的啊,
你要不信你自己也试试吧。
我出了很无聊的测试了一下,我更无聊查了一下,
原来人家关于空语句自动警告的说法来源于一本教科书
《微软c 编程精粹----第1章 假想的编译程序 》
其实人家说的东西都是没有什么大问题 |
|
d***a 发帖数: 13752 | 16 嗯?你不是说过“最后一帖”了吗?!
Steve Maguire在微软写的这个东西,Google一下就出来了
他把空语句写成"NULL;"的做法,我个人的意见,是拙劣的,有好几个问题
其中一个显著的问题是,如果打开常用的报警,象-Wall
就会对"NULL;"报错,造成无必要的报警
飞马到哪里去了?开了这样一个帖子,引出这许多初级问题,怎么就一走了之了 |
|
d***a 发帖数: 13752 | 17 嗯,空语句和NULL都搞混的"牛人"
他的原话:"其实需要空操作的场合非常少,真的需要,要使用NULL"
两行的C代码,能不能过编辑器, 他也看不出来
这种二把刀欺上门来,还是要打回去的 |
|
W**********4 发帖数: 322 | 18 发信人: digua (姚之FAN), 信区: Apple
标 题: Re: 让我告诉你们一个真实的软工。。。 (转载)
发信站: BBS 未名空间站 (Tue Mar 5 20:03:00 2013, 美东)
嗯?你不是说过“最后一帖”了吗?!
Steve Maguire在微软写的这个东西,Google一下就出来了
他把空语句写成"NULL;"的做法,我个人的意见,是拙劣的,有好几个问题
其中一个显著的问题是,如果打开常用的报警,象-Wall
就会对"NULL;"报错,造成无必要的报警
飞马到哪里去了?开了这样一个帖子,引出这许多初级问题,怎么就一走了之了 |
|
d***a 发帖数: 13752 | 19 嗯,空语句和NULL都搞混的"牛人"
他的原话:"其实需要空操作的场合非常少,真的需要,要使用NULL"
两行的C代码,能不能过编辑器, 他也看不出来
这种二把刀欺上门来,还是要打回去的 |
|
W**********4 发帖数: 322 | 20 发信人: digua (姚之FAN), 信区: Apple
标 题: Re: 让我告诉你们一个真实的软工。。。 (转载)
发信站: BBS 未名空间站 (Tue Mar 5 20:03:00 2013, 美东)
嗯?你不是说过“最后一帖”了吗?!
Steve Maguire在微软写的这个东西,Google一下就出来了
他把空语句写成"NULL;"的做法,我个人的意见,是拙劣的,有好几个问题
其中一个显著的问题是,如果打开常用的报警,象-Wall
就会对"NULL;"报错,造成无必要的报警
飞马到哪里去了?开了这样一个帖子,引出这许多初级问题,怎么就一走了之了 |
|