const, define ,enum{} 幾種用法對比
如下定義幾種變數:
1.static const int var = 5;
2.#define var 5
3.enum;
① 如果需要通過指標傳遞資料,則使用1
② 使用2 則不必要通過指標傳遞資料
③ 1和3 debugger 中都會生成 symbol table, 供查詢。2 則不必要
④ 2,3 可以用來作為陣列的邊界值,而1 不行
c 和 c++ 中又有不同,在c 中 用#define 要好些, 因為const 在c 中並不是真正的 const變數。在c++ 中,const 是真正的const,出於型別安全考慮,用const會好些。
#define var
struct mystruct ;
#define var 5
int main()
因為此種情況中 var 會被替換,所以 #define 後面的字母通常使用全大寫。
另外一種替代 #define 的方法是 使用 enum, 但是對於 int 型別, 數**算則是被限制的。通常來說,使用static const 要好
總結
對於單純的變數,最好以 const物件或enums 替換# defines
對於行似函式的巨集(macros), 最好改用inline 函式替換 #defines.
refference
《effective c++》
宣告變數 如果同時宣告多個變數
如果同時宣告多個變數,可以用以下語句 也可以按如下宣告 dim a as integer,b as integer,c as integer但是不可以按如下宣告 dim a,b,c as integer 如果這樣操作,僅有c宣告正確。如何檢查是否宣告成功呢?可以使用typename函式來判斷。msg...
php宣告變數開頭,php變數宣告
1 什麼是變數?變數就是可變的量,我們可以把它看做是?個容器之所以叫做變數。是因為一旦被宣告後在整個指令碼中都會可以動態的改變變數的值。2 變數的命名規範 1 以 開頭 2 由字母數字下劃線組成,但是不能以數字開頭 3 可以使用中文,但是不推薦使yongoing 4 變數名嚴格區分大小寫 5 變數名...
js變數宣告
var a 向系統要個空間 var 是個關鍵字,變數宣告只有var var a 10 這裡發生兩個過程,乙個是向系統要個空間,另乙個是把10放進房間。並且先發生第一步。var a 10 a 20 20的值把10的值覆蓋 var a,b,c,e 可以同時宣告多個變數,中間以,號 程式設計都是英文狀態 ...