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)是比較恰當的。
全站熱搜