由买买提看人间百态

topics

全部话题 - 话题: 空语句
1 (共1页)
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岁还是幼齿, 你口味真重
W**********4
发帖数: 322
7
晕,你不知道网上很多日记是把书上的一些话摘抄的吗。
我明明跟你说了,空语句是个讨论很多的问题。
你是不是没有做研究啊。
还是那就话,请就事论事,说说人家的说法那不对了。
请不要针对幼齿,不要看到幼齿就忘了技术了
其实那些博客都是互抄的,
http://my.oschina.net/taisha/blog/54021
其实人家幼齿的博客是抄《微软c 编程精粹----第1章 假想的编译程序 》
哈哈
我还是继续帮你做研究把:
https://s3-ap-northeast-1.amazonaws.com/booksikindle/html/%E7%BC%96%E7%A8%8B
%E7%B2%BE%E7%B2%B91/Bian_Cheng_Jing_Cui__Bian_Xie_Ga_split_004.html
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岁还是幼齿, 你口味真重
W**********4
发帖数: 322
13
晕,你不知道网上很多日记是把书上的一些话摘抄的吗。
我明明跟你说了,空语句是个讨论很多的问题。
你是不是没有做研究啊。
还是那就话,请就事论事,说说人家的说法那不对了。
请不要针对幼齿,不要看到幼齿就忘了技术了
其实那些博客都是互抄的,
http://my.oschina.net/taisha/blog/54021
其实人家幼齿的博客是抄《微软c 编程精粹----第1章 假想的编译程序 》
哈哈
我还是继续帮你做研究把:
https://s3-ap-northeast-1.amazonaws.com/booksikindle/html/%E7%BC%96%E7%A8%8B
%E7%B2%BE%E7%B2%B91/Bian_Cheng_Jing_Cui__Bian_Xie_Ga_split_004.html
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;"报错,造成无必要的报警
飞马到哪里去了?开了这样一个帖子,引出这许多初级问题,怎么就一走了之了
1 (共1页)