C 列舉與常量定義的區別

2022-06-19 03:15:15 字數 467 閱讀 9160

為什麼用列舉變數而不是常量定義?

class

videostatus

對於這種單值變數的靜態常量定義,本身沒有問題,主要是在使用的地方沒有乙個明確性的約束,比如

void judgevideostatus(int

status)

但是在列舉型別出現後,上面這種情況就可以用列舉嚴謹地去約束,比如用列舉去定義狀態就非常的簡潔了:

enum videostatus

而且在用到列舉的地方會有更強的型別約束

void

judgevideostatus(videostatus status)

這樣,在我們呼叫judgevideostatus函式時,入參型別就會收到明確的型別約束,一旦傳入無效值,編譯器就會幫我們檢查,從而規避潛在問題。

常量和列舉 常量類的區別

一 實體常量類 實體常量類 author administrator date 2018 7 21 public class constclass1 jdk編譯時,直接把常量編譯到使用的地方。在修改變數值後,其它類有可能會出現編譯到舊常量值的問題。2 只能用equals比較,效能較低。無法保證型別是...

列舉與常量

目錄 先介紹一下兩者的區別 1 常量就是乙個值 列舉是一組不變的值 2 列舉是自己定義後再使用,有一定的約束 常量可以隨便定義 3 列舉傳入的值是固定的值不會出錯,常量是乙個值,傳遞的引數是任意的 4 限制使用者不能隨意賦值,只能在列舉的值中選擇,不需要死記每乙個值,只需要選擇相應的值 列舉的優點 ...

const定義常量與巨集定義的區別!!!

巨集定義語法格式 define 巨集名稱 巨集值 不加分號,變數名一般設為大寫 巨集的替換與計算 舉乙個例子 define n 3 1 define y n n 1 n 若執行語句 z 2 n y 5 1 後 z 的值為多少?z 2 3 1 3 1 1 5 1 60 巨集的替換在 執行的預編譯階段,...