C语言的博大精深

最初由 gdntfrank 发布
Do you guys enjoy spending time on these tiny problems?

俺们村有句话叫:一个人顺手放的东西,可能一百个人都找不到。

上次有个城里人在if else后面没有用{}把一句话框起来,后来又添了一句,结果那句就跑到块外面去了,找啊找。。。
 
大家知道 switch case的实现吗?我的意思是编译器怎么实现它的。
 
最初由 Kent以东首帅哥 发布
弄了十来年了,每次看看都会发现些新东西,象下面这样的小程序,里面竟然还会隐含一个设计错误。

void main()
{
int i;
int iArray[20];

(for i=0;i<20;i++){
iArray = 1;
}

}

Correction
int main()
{
int i;
int iArray[20];

for (i=0;i<20;i++){
iArray = 1;
}
return 0;
}
 
最初由 Kent以东首帅哥 发布
asm很简单的
你的这个例子是最简单的。
你可以试试没规律的情况,我只是想说没规律,有非常长的switch case是不好的代码。
 
不记得是那位"大师"讲的, 程序其实就是一堆If...Then...Else 语句。能搞清楚这个语句,就能搞懂软件。
 
70年前的图灵机,Turing Machine就是现在的电脑啦,要能搞明白就......
 
最初由 dragonLinux 发布

你的这个例子是最简单的。
你可以试试没规律的情况,我只是想说没规律,有非常长的switch case是不好的代码。

10个case以内的,switch还是很好的,非常直观,还可以把调用频率高的case放在前面。

如果case非常多,就用查表法好了。
 
最初由 Kent以东首帅哥 发布


10个case以内的,switch还是很好的,非常直观,还可以把调用频率高的case放在前面。

如果case非常多,就用查表法好了。

说得对!当复杂时,通过反汇编可以看出,只是一个一个的比较,效率就差拉,多就用hash!
 
后退
顶部
首页 论坛
消息
我的