const int i = 2 * 2;當我們定義i為const,且值為2 * 2 = 4,編譯器會在編譯期就會做2 * 2 = 4,然而這個過程就叫做constant folding,之後就像巨集一樣,把i指定為4,在程式中遇到i就替代成4,這個過程就叫做constant propagation,所以基本上這個i是不會佔記憶體空間的。
也難怪C++ primer會說要用const來替代大部分的define了。
const int i = 2 * 2;當我們定義i為const,且值為2 * 2 = 4,編譯器會在編譯期就會做2 * 2 = 4,然而這個過程就叫做constant folding,之後就像巨集一樣,把i指定為4,在程式中遇到i就替代成4,這個過程就叫做constant propagation,所以基本上這個i是不會佔記憶體空間的。
Copyright 2010 亞嘎米. Designed by CSS Templates | Blogger Templates by TeknoMobi | Sponsored by Domain Promo Codes
0 意見:
張貼留言