C/C++面向對象編程之關鍵字

1、void

void 的字面意思是“空類型”, void *則爲“空類型指針”, void *可以指向任何類型的數據。

  • 如果函數沒有返回值,那麼應聲明爲 void 類型。
  • 如果函數無參數,那麼應聲明其參數爲 void
  • 千萬小心又小心使用 void 指針類型
    任何類型的指針都可以直接賦值給void *,但void *不可以無需強制類型轉換地賦給其它類型的指針。
    按照 ANSI(American National Standards Institute)標準,不能對 void 指針進行算法操作。GNU(GNU’s Not Unix 的遞歸縮寫)則不這麼認定,它指定 void *的算法操作與 char *一致,在實際的程序設計中,爲符合 ANSI 標準,並提高程序的可移植性,我們可以這樣編寫
    實現同樣功能的代碼:
    void * pvoid;
    (char *)pvoid++; //ANSI:正確; GNU:正確
  • 如果函數的參數可以是任意類型指針,那麼應聲明其參數爲 void *
  • void 不能代表一個真實的變量
    因爲定義變量時必須分配內存空間,定義 void 類型變量,編譯器到底分配多大的內存呢
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章