enum在c語言中的用法 c語言中的枚舉類型在數據結構中有?
數據結構中經常使用枚舉類型來表示數據中的常量值。關鍵詞:C語言有32個關鍵詞,比如int char float C語言有上百個標準庫函數,分布在不同的庫文件中。目前,大多數系統和程序肯定與C99標準兼
數據結構中經常使用枚舉類型來表示數據中的常量值。
關鍵詞:C語言有32個關鍵詞,比如int char float
C語言有上百個標準庫函數,分布在不同的庫文件中。目前,大多數系統和程序肯定與C99標準兼容,但2011年已經發布了更新版本,一些遺留系統可能不一定支持最新的功能。不同的功能有不同的應用。是否說哪些比較常用,要看你的工作性質。
一般來說,至少在基本編程中,stdio中的I/O(要么是控制臺,要么是文件),stdlib中的各種通用工具(比如分配堆內存),string中的字符串處理,
是的。
以C語言為例,在內存中創建一個字符串,至少需要一個char數組來存儲,因為要存儲結束標識符;枚舉實際上是一個結構,里面的枚舉項可以定義為整數,比字符串的存儲更方便,成本更低。
而且字符串作為枚舉時容易拼錯,枚舉都定義為數值常量,編譯器編譯時容易發現錯誤,提示開發者及時改正,方便維護。
Java編程中有。
如果可以選擇,使用enum是比String更好的方法。它的性能比String好,而且也是類型安全的。如果參數集是有限的并且在編譯時已知,則使用enum。但是如果參數集是未知的或者在編譯時是開放的,那么除了使用字符串之外別無選擇。
結論是會有性能損失。
主要比較兩個對象。
枚舉可以理解為singleton。直接比較對象時,可以簡單理解為整數對象比較。時間復雜度為1。
字符串,實際上用的是equals方法,你看了代碼應該知道它是逐字符比較的。時間復雜度為n,字符串越長越耗時。
作為map的鍵,或者使用switch語句,這樣的性能差別不小。
損失不大的性能損失最大的在于磁盤IO和網絡IO。
那里 這真的沒必要擔心。自己測試一下就好了。