我的常识性错误
本文将不定期更新,记录个人所犯之常识性错误。
数组参数的体积(2006.10.08)
void foo( char bar[100] )
{
printf( "%d ", sizeof(bar) );
}
一直认为输出应该是100,但实际却是 4(即 sizeof(char*))。现在,唯一让我庆幸的是我在函数参数中使用数组,并且依赖 sizeof 的结果的时候极少。
WSAStartup 要调用多少次(2008.01.08)
不知为什么,几年以来,我一直认为要为每个使用网络的线程调一次。直到今天才发现弄错了,按说我一直是仔细阅读 msdn 的,唉!不过为每个线程调一次只是多余的,并不是错误的,也许这就是我一直没有注意到它的原因吧。
do while 循环中的 continue 会跳到哪去(2008.01.08)
do
// ①
{
i++;
continue;
}
// ②
while( i < 10 );
一直认为是①,今天正在写的程序出错了才发现是②。老天保佑以前的程序不出错吧。这个错误一直没发现的原因有两点,一是我用 do while 循环比较少,里面有 continue 的更少;二是自己偷懒了,想当然了,其实以前怀疑过它的结果的,但觉得①更符合逻辑就没有深究。
