首頁>Club>
8
回覆列表
  • 1 # 使用者4356995687300

    #define和那兩個都不一樣,它屬於宏,是預處理器的一部分。預處理是在編譯之前的一道,簡單地進行字串替換。它不按照語言的語法,而是直觀自己的語法。你#define裡面寫的東西會被簡單粗暴地塞進去:

    會得到:編譯器會感覺你寫了一個變數,名字是fuck,型別是fuck。const是單詞constant的簡寫,字面意思是常數、常量。用於變數修飾,表明這個變數不能被修改;用於指標修飾,表明指標的指向物不能被修改;用於方法修飾,表明這個方法不會對物件造成改變。static很討厭,有三個個完全不同的含義:用在全域性變數,表明這個變數在每個編譯單元有獨自的例項:如果你分別編譯foo.cpp和bar.cpp,再把它們連結在一起,全域性變數a會有兩份,那兩個函式會操縱不一樣的a例項。用在函數里的區域性變數,表明它的生存週期其實是全域性變數,但僅在函式內可見:每次訪問這個函式的時候,會獲得不同的int值。那個=0的操作僅在第一次訪問時執行,其實是初始化而不是賦值。用在類成員,表明成員或者方法是類的,而不是物件例項的。每個Foo例項會只含有一個int a。bbb方法透過Foo::bbb()呼叫。

  • 中秋節和大豐收的關聯?
  • 3dmax中的物體自發光怎麼發光?