z****e 发帖数: 54598 | 1 【 以下文字转载自 Apple 讨论区 】
发信人: digua (姚之FAN), 信区: Apple
标 题: Re: 让我告诉你们一个真实的软工。。。 (转载)
发信站: BBS 未名空间站 (Sun Mar 3 22:58:48 2013, 美东)
和某些ID讨论技术问题,往往会让人不愉快。教科书式的基本知识,
业者的基本经验,到了他们那里就成了一个基本教义的问题。他们
的目的不是把技术讨论清楚,是预先有个立场,狂热地要赢,讨论
总在低水平上打转。本来这么多帖子,可以讨论不少有意思的问题,
或者开开玩笑放松一下也是好的。 |
c*******y 发帖数: 3529 | 2 发信人: pegasus9 (飞马座), 信区: Apple
标 题: Re: 让我告诉你们一个真实的软工。。。 (转载)
发信站: BBS 未名空间站 (Sat Mar 2 11:59:46 2013, 美东)
软工水平真心不招啊,一个分号琢磨半天 |
c*******y 发帖数: 3529 | |
d***a 发帖数: 13752 | 4 哈哈,我在这潜水呢。
本来是一个简单的问题,在学校和老师认真学过java或C的都
应该知道,就算暂时还给老师了,想一想也能记起来。
我本来不想欺负他的,可是被一位二把刀欺上门来,不给他
点color看看,也实在说不过去。
【在 z****e 的大作中提到】 : 【 以下文字转载自 Apple 讨论区 】 : 发信人: digua (姚之FAN), 信区: Apple : 标 题: Re: 让我告诉你们一个真实的软工。。。 (转载) : 发信站: BBS 未名空间站 (Sun Mar 3 22:58:48 2013, 美东) : 和某些ID讨论技术问题,往往会让人不愉快。教科书式的基本知识, : 业者的基本经验,到了他们那里就成了一个基本教义的问题。他们 : 的目的不是把技术讨论清楚,是预先有个立场,狂热地要赢,讨论 : 总在低水平上打转。本来这么多帖子,可以讨论不少有意思的问题, : 或者开开玩笑放松一下也是好的。
|
c*******y 发帖数: 3529 | 5 我怎么觉得是你被欺负到爆粗口啊
还被一牛人搞的很尴尬。。。
随便说说,别认真
【在 d***a 的大作中提到】 : 哈哈,我在这潜水呢。 : 本来是一个简单的问题,在学校和老师认真学过java或C的都 : 应该知道,就算暂时还给老师了,想一想也能记起来。 : 我本来不想欺负他的,可是被一位二把刀欺上门来,不给他 : 点color看看,也实在说不过去。
|
d***a 发帖数: 13752 | 6 嗯,空语句和NULL都搞混的"牛人"
他的原话:"其实需要空操作的场合非常少,真的需要,要使用NULL"
两行的C代码,能不能过编辑器, 他也看不出来
这种二把刀欺上门来,还是要打回去的
【在 c*******y 的大作中提到】 : 我怎么觉得是你被欺负到爆粗口啊 : 还被一牛人搞的很尴尬。。。 : 随便说说,别认真
|
c*******y 发帖数: 3529 | 7 我说的牛人是chenpp
他怀疑你。。。,你很汗颜的。。。
发信人: digua (姚之FAN), 信区: Apple
标 题: Re: 让我告诉你们一个真实的软工。。。 (转载)
发信站: BBS 未名空间站 (Sun Mar 3 17:55:12 2013, 美东)
你往哪想了...
要知道,我给的是一个教科书式的例子 :-)
是一个非常基本的C编程注意事项 |
d***a 发帖数: 13752 | 8 你的感觉很怪异啊,没有被异灵附身吧。:)
【在 c*******y 的大作中提到】 : 我说的牛人是chenpp : 他怀疑你。。。,你很汗颜的。。。 : 发信人: digua (姚之FAN), 信区: Apple : 标 题: Re: 让我告诉你们一个真实的软工。。。 (转载) : 发信站: BBS 未名空间站 (Sun Mar 3 17:55:12 2013, 美东) : 你往哪想了... : 要知道,我给的是一个教科书式的例子 :-) : 是一个非常基本的C编程注意事项
|
c*******y 发帖数: 3529 | 9 我正在用VC弄一道数学题,你要是兴趣,到数学版看看。
所以我顺便测试一下你那两行c代码,就当做放松脑子吧:
int _tmain(int argc, _TCHAR* argv[])
{
int max=0;
int a=3;
if(max
max = a;
return 0;
}
我用的是VC, warning开最高,并且当error用,确实通不过编译:
warning C4390: ';' : empty controlled statement found; is this the intent?
在gcc里使用-Wextra -Werror, 也应该是编译通不过的。
这个WhatIfIWereU 已经指出了。
看来人家还真没瞎说
【在 d***a 的大作中提到】 : 嗯,空语句和NULL都搞混的"牛人" : 他的原话:"其实需要空操作的场合非常少,真的需要,要使用NULL" : 两行的C代码,能不能过编辑器, 他也看不出来 : 这种二把刀欺上门来,还是要打回去的
|
c*******y 发帖数: 3529 | 10 用“NULL; ”表示空语句也是某本教科书上说的,
我只管摘抄,不负责对错。
下面一段来自《微软c 编程精粹----第1章 假想的编译程序 》
===============================
我们从程序的缩进情况就可以知道while表达式后由的分号肯定是个错误,但编译
程序却认为这是一个完全合法的while语句,其循环体为空语句。由于有时需要空语句
,有时不需要空语句,所以为了查出不需要的空语句,编译程序常常在遇到空语句时给
出一条可选的警告信息,自动警告你可能出了上面的错误。当确定需要用空语句时,你
就用。但最好用NULL使其明显可见。例如:
char* strcpy(char* pchTo, char* pchFrom)
{
char* pchStart = pchTo;
while(*pchTo++ = *pchFrom++)
NULL;
Return(pchStart);
} |
|
|
W**********4 发帖数: 322 | 11 这本书的作者是Steve Maguire:
http://en.wikipedia.org/wiki/Steve_Maguire
英文原版叫《Writing Solid Code》
被brown,pitt,utexas等高校还当作参考书:
http://www.brown.edu/Departments/CCV/sites/brown.edu.Department
在国内被很多人传抄,所以中文版到处能下到。
【在 d***a 的大作中提到】 : 你的感觉很怪异啊,没有被异灵附身吧。:)
|
W**********4 发帖数: 322 | 12 WhatIfIWereU大牛认为,gcc -Wextra -Werror -c就会编译不通过
digua大神不相信他的两行C代码编译通不过
究竟谁更靠谱呢?让事实说话吧。
用 gcc -Wextra -Werror -c编译一下代码:
#include
main()
{
int a,max;
a=3;
max=0;
if(a>max);
max=a;
}
果然通不过,错误信息如下:
cc1: warnings being treated as errors
comma.c: In function 'main':
comma.c:8: error: suggest braces around empty body in an 'if' statement
如果去掉if()后面的分号, 顺利通过。
WhatIfIWereU的说法比较靠谱。
【在 d***a 的大作中提到】 : 你的感觉很怪异啊,没有被异灵附身吧。:)
|
W**********4 发帖数: 322 | 13 发信人: digua (姚之FAN), 信区: Apple
标 题: Re: 让我告诉你们一个真实的软工。。。 (转载)
发信站: BBS 未名空间站 (Tue Mar 5 20:03:00 2013, 美东)
嗯?你不是说过“最后一帖”了吗?!
Steve Maguire在微软写的这个东西,Google一下就出来了
他把空语句写成"NULL;"的做法,我个人的意见,是拙劣的,有好几个问题
其中一个显著的问题是,如果打开常用的报警,象-Wall
就会对"NULL;"报错,造成无必要的报警
飞马到哪里去了?开了这样一个帖子,引出这许多初级问题,怎么就一走了之了 |
z****e 发帖数: 54598 | 14 【 以下文字转载自 Apple 讨论区 】
发信人: digua (姚之FAN), 信区: Apple
标 题: Re: 让我告诉你们一个真实的软工。。。 (转载)
发信站: BBS 未名空间站 (Sun Mar 3 22:58:48 2013, 美东)
和某些ID讨论技术问题,往往会让人不愉快。教科书式的基本知识,
业者的基本经验,到了他们那里就成了一个基本教义的问题。他们
的目的不是把技术讨论清楚,是预先有个立场,狂热地要赢,讨论
总在低水平上打转。本来这么多帖子,可以讨论不少有意思的问题,
或者开开玩笑放松一下也是好的。 |
c*******y 发帖数: 3529 | 15 发信人: pegasus9 (飞马座), 信区: Apple
标 题: Re: 让我告诉你们一个真实的软工。。。 (转载)
发信站: BBS 未名空间站 (Sat Mar 2 11:59:46 2013, 美东)
软工水平真心不招啊,一个分号琢磨半天 |
c*******y 发帖数: 3529 | 16 讨论问题都开始PA了,好玩
【在 d***a 的大作中提到】 : 你的感觉很怪异啊,没有被异灵附身吧。:)
|
d***a 发帖数: 13752 | 17 哈哈,我在这潜水呢。
本来是一个简单的问题,在学校和老师认真学过java或C的都
应该知道,就算暂时还给老师了,想一想也能记起来。
我本来不想欺负他的,可是被一位二把刀欺上门来,不给他
点color看看,也实在说不过去。
【在 z****e 的大作中提到】 : 【 以下文字转载自 Apple 讨论区 】 : 发信人: digua (姚之FAN), 信区: Apple : 标 题: Re: 让我告诉你们一个真实的软工。。。 (转载) : 发信站: BBS 未名空间站 (Sun Mar 3 22:58:48 2013, 美东) : 和某些ID讨论技术问题,往往会让人不愉快。教科书式的基本知识, : 业者的基本经验,到了他们那里就成了一个基本教义的问题。他们 : 的目的不是把技术讨论清楚,是预先有个立场,狂热地要赢,讨论 : 总在低水平上打转。本来这么多帖子,可以讨论不少有意思的问题, : 或者开开玩笑放松一下也是好的。
|
c*******y 发帖数: 3529 | 18 我怎么觉得是你被欺负到爆粗口啊
还被一牛人搞的很尴尬。。。
随便说说,别认真
【在 d***a 的大作中提到】 : 哈哈,我在这潜水呢。 : 本来是一个简单的问题,在学校和老师认真学过java或C的都 : 应该知道,就算暂时还给老师了,想一想也能记起来。 : 我本来不想欺负他的,可是被一位二把刀欺上门来,不给他 : 点color看看,也实在说不过去。
|
d***a 发帖数: 13752 | 19 嗯,空语句和NULL都搞混的"牛人"
他的原话:"其实需要空操作的场合非常少,真的需要,要使用NULL"
两行的C代码,能不能过编辑器, 他也看不出来
这种二把刀欺上门来,还是要打回去的
【在 c*******y 的大作中提到】 : 我怎么觉得是你被欺负到爆粗口啊 : 还被一牛人搞的很尴尬。。。 : 随便说说,别认真
|
c*******y 发帖数: 3529 | 20 我说的牛人是chenpp
他怀疑你。。。,你很汗颜的。。。
发信人: digua (姚之FAN), 信区: Apple
标 题: Re: 让我告诉你们一个真实的软工。。。 (转载)
发信站: BBS 未名空间站 (Sun Mar 3 17:55:12 2013, 美东)
你往哪想了...
要知道,我给的是一个教科书式的例子 :-)
是一个非常基本的C编程注意事项 |
|
|
d***a 发帖数: 13752 | 21 你的感觉很怪异啊,没有被异灵附身吧。:)
【在 c*******y 的大作中提到】 : 我说的牛人是chenpp : 他怀疑你。。。,你很汗颜的。。。 : 发信人: digua (姚之FAN), 信区: Apple : 标 题: Re: 让我告诉你们一个真实的软工。。。 (转载) : 发信站: BBS 未名空间站 (Sun Mar 3 17:55:12 2013, 美东) : 你往哪想了... : 要知道,我给的是一个教科书式的例子 :-) : 是一个非常基本的C编程注意事项
|
c*******y 发帖数: 3529 | 22 我正在用VC弄一道数学题,你要是兴趣,到数学版看看。
所以我顺便测试一下你那两行c代码,就当做放松脑子吧:
int _tmain(int argc, _TCHAR* argv[])
{
int max=0;
int a=3;
if(max
max = a;
return 0;
}
我用的是VC, warning开最高,并且当error用,确实通不过编译:
warning C4390: ';' : empty controlled statement found; is this the intent?
在gcc里使用-Wextra -Werror, 也应该是编译通不过的。
这个WhatIfIWereU 已经指出了。
看来人家还真没瞎说
【在 d***a 的大作中提到】 : 嗯,空语句和NULL都搞混的"牛人" : 他的原话:"其实需要空操作的场合非常少,真的需要,要使用NULL" : 两行的C代码,能不能过编辑器, 他也看不出来 : 这种二把刀欺上门来,还是要打回去的
|
c*******y 发帖数: 3529 | 23 用“NULL; ”表示空语句也是某本教科书上说的,
我只管摘抄,不负责对错。
下面一段来自《微软c 编程精粹----第1章 假想的编译程序 》
===============================
我们从程序的缩进情况就可以知道while表达式后由的分号肯定是个错误,但编译
程序却认为这是一个完全合法的while语句,其循环体为空语句。由于有时需要空语句
,有时不需要空语句,所以为了查出不需要的空语句,编译程序常常在遇到空语句时给
出一条可选的警告信息,自动警告你可能出了上面的错误。当确定需要用空语句时,你
就用。但最好用NULL使其明显可见。例如:
char* strcpy(char* pchTo, char* pchFrom)
{
char* pchStart = pchTo;
while(*pchTo++ = *pchFrom++)
NULL;
Return(pchStart);
} |
W**********4 发帖数: 322 | 24 这本书的作者是Steve Maguire:
http://en.wikipedia.org/wiki/Steve_Maguire
英文原版叫《Writing Solid Code》
被brown,pitt,utexas等高校还当作参考书:
http://www.brown.edu/Departments/CCV/sites/brown.edu.Department
在国内被很多人传抄,所以中文版到处能下到。
【在 d***a 的大作中提到】 : 你的感觉很怪异啊,没有被异灵附身吧。:)
|
W**********4 发帖数: 322 | 25 WhatIfIWereU认为,gcc -Wextra -Werror -c就会编译不通过
digua不相信他的两行C代码编译通不过
究竟谁更靠谱呢?让事实说话吧。
用 gcc -Wextra -Werror -c编译一下代码:
#include
main()
{
int a,max;
a=3;
max=0;
if(a>max);
max=a;
}
果然通不过,错误信息如下:
cc1: warnings being treated as errors
comma.c: In function 'main':
comma.c:8: error: suggest braces around empty body in an 'if' statement
如果去掉if()后面的分号, 顺利通过。
WhatIfIWereU的说法比较靠谱。
【在 d***a 的大作中提到】 : 你的感觉很怪异啊,没有被异灵附身吧。:)
|
W**********4 发帖数: 322 | 26 发信人: digua (姚之FAN), 信区: Apple
标 题: Re: 让我告诉你们一个真实的软工。。。 (转载)
发信站: BBS 未名空间站 (Tue Mar 5 20:03:00 2013, 美东)
嗯?你不是说过“最后一帖”了吗?!
Steve Maguire在微软写的这个东西,Google一下就出来了
他把空语句写成"NULL;"的做法,我个人的意见,是拙劣的,有好几个问题
其中一个显著的问题是,如果打开常用的报警,象-Wall
就会对"NULL;"报错,造成无必要的报警
飞马到哪里去了?开了这样一个帖子,引出这许多初级问题,怎么就一走了之了 |
c*******y 发帖数: 3529 | 27 ~digua的说法:
~WaterDegree4的回复:
“C语言编程不怕少个分号” 这是真的吗?
看看以下代码:
#include
int main()
{
int pn,id,ps;
pn=0;
ps=25;
for(id=0;id<100;id++);
pn += ps;
return 0;
}
这段代码的本意是:用一个for循环做延迟,然后让pn累加25。
最后pn的结果是25.
如果for()后面少个分号,会怎样呢?
结果会是pn 被累加了100次,跟原来设想完全不一样了。
糟糕的是,编译器不会报错也不warning,即使Wextra Werror Wall全用上。
看来少个分号,照样可怕,照样编译器不报错,照样要进入debugging阶段
才能查出。
【在 d***a 的大作中提到】 : 你的感觉很怪异啊,没有被异灵附身吧。:)
|