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!
 
后退
顶部