close

原文如下:
http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#sizeof

Google C++ Style Guide建議,盡量使用sizeof(varname),而非sizeof(type)。

比方說程式中有一個MyStruct;
struct MyStruct
{
    int a;
    int b;
};

我們應盡量使用:
MyStruct data;
memset(&data, 0, sizeof(data));

而非使用:
MyStruct data;
memset(&data, 0, sizeof(MyStruct));

原因在於在軟體開發的過程中,可能會經歷無數次的修改;若我們使用sizeof(type),則當variable的type被修改時(比方說從int var;修改成double var;),programmer也要記得去修改sizeof(type)的部分(將sizeof(int)改成sizeof(double)),否則將會產生bug。而使用sizeof(varname)則沒有這樣的困擾。

確實有些時候使用sizeof(type)可以帶來比較好的可讀性(畢竟當我們看到sizeof(data)時,無法一眼就看出sizeof(data)為幾個byte),但考慮到將來程式修改時所帶來的風險,適時的選擇sizeof(varname)是比較恰當的。

arrow
arrow
    全站熱搜

    coherence 發表在 痞客邦 留言(0) 人氣()