VinceYuan

Personal Blog

导航

C/C++中一些要注意的地方

Posted on 2007-03-23 16:34  Vince Yuan  阅读(1024)  评论(0编辑  收藏  举报
列一些我个人要注意的一些地方。我会不断对此文进行增加和修改。

1。数组作为函数参数的,要注意sizeof的大小
注意下面代码中的几个sizeof结果
void Func1( char str[100])
{
    cout 
<<"Func1: sizeof(str)=" << sizeof(str) << endl;
}

void Func2( char* str)
{
    cout 
<<"Func2: sizeof(str)=" << sizeof(str) << endl;
}


int _tmain(int argc, _TCHAR* argv[])
{
    
char str[100];
    cout 
<<"Main: sizeof(str)=" << sizeof(str) << endl;
    Func1( str );
    Func2( str );
    
return 0;
}
结果应该是100, 4, 4。
在函数中数组名作为函数形参时,在函数体内,数组名失去了本身的内涵,仅仅是一个指针。

2。MFC中ASSERT与VERIFY的异同
相同点,ASSERT与VERIFY中的条件失败,仅在debug下中断程序并记录;Release版本中不会出现。
不同点,ASSERT中的条件语句在Release中根本就不存在(没有执行),VERIFY中的条件语句执行了,只不过就算失败也不会中断程序。