我的常识性错误
0 条评论本文将不定期更新,记录个人所犯之常识性错误。
数组参数的体积(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
的更少; 二是自己偷懒了, 想当然了, 其实以前怀疑过它的结果的, 但觉得①更符合逻辑就没有深究.