本文将不定期更新,记录个人所犯之常识性错误。

数组参数的体积(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的更少; 二是自己偷懒了, 想当然了, 其实以前怀疑过它的结果的, 但觉得①更符合逻辑就没有深究.