C語言中enum與typedef enum的用法
在瞭解enum和typedef enum的區別之前先應該明白typedef的用法和意義。 C語言裡typedef的解釋是用來宣告新的型別名來代替已有的類姓名。 例如: typedef int CHANGE; 指定了用CHANGE代表int型別,CHANGE代表int,那麼:int a,b;和CHANGE a,b;是等價的、一樣的。方便了個人習慣,熟悉的人用CHANGE來定義int。 typedef為C語言的關鍵字,作用是為一種資料型別定義一個新名字。這裡的資料型別包括內部資料型別(int,char等)和自定義的資料型別(struct等)。 而enum是列舉型別,有了typedef的理解容易看出,typedef enum定義了列舉型別,型別變數取值在enum{}範圍內取,在使用中二者無差別。
typedef enum {
WAIT_CONNECTED, ///< The robot has connected
WAIT_FAILED_CONN, ///< The robot failed to connect
WAIT_RUN_EXIT, ///< The run loop has exited
WAIT_TIMEDOUT, ///< The wait reached the timeout specified
WAIT_INTR, ///< The wait was interupted by a signal
WAIT_FAIL ///< The wait failed due to an error
} WaitState;
enum ChargeState {
CHARGING_UNKNOWN = -1,
CHARGING_NOT = 0,
CHARGING_BULK = 1,
CHARGING_OVERCHARGE = 2,
CHARGING_FLOAT = 3,
CHARGING_BALANCE = 4
};
看上面兩個例子更好理解,上面的是WaitState的API,下面的直接呼叫enum裡的元素就可以了。
相關推薦
C語言中static與extern的用法
在C語言中,static與extern的用法 (1)修飾區域性變數 a.一般情況下,對於區域性變數是存放在棧區的,並且區域性變數的生命週期在該語句塊執行結束時便結束了。但是如果用static進行修飾的話,該變數便存放在靜態資料區,其生命週期一直持續到整個程式
C語言中enum與typedef enum的用法
在瞭解enum和typedef enum的區別之前先應該明白typedef的用法和意義。 C語言裡typedef的解釋是用來宣告新的型別名來代替已有的類姓名。 例如: typedef int CHANGE; 指定了用CHANGE代表int型別,CHANG
enum與typedef enum的用法
一,兩者的用法 列舉型別定義用關鍵字enum標識,形式為: enum 識別符號 { 列舉資料表 };列舉資料(列舉常量)是一些特定的識別符號,識別符號代表什麼含義,完全由程式設計師決定。資料列舉的順序規定了列舉資料的序號,從0開始,依次遞增。enum
C語言中sprintf()函數的用法
用法 href bsp HA 連接 art tail 格式化 類型轉換 sprintf函數的用法1、該函數包含在stdio.h的頭文件中。 2、sprintf和平時我們常用的printf函數的功能很相似。sprintf函數打印到字符串中,而printf函數打印輸出到屏幕
c語言中sscanf()與sprintf()的使用
strong include print int quest stdio.h 語言 控制臺 dbn #include<stdio.h> void main(void){ char * cgistr = "|Ip=192.168.1.78|Port=56
C語言中sizeof與strlen區別
由於 def sizeof 繼續 數組 color 例如 結束 自動添加 sizeof 初始的分配的空間大小,期中 sizeof(unsigned char) = 1; sizeof(signed char) = 1; sizeof(int) = 4; siz
C語言中exit()與return的區別
1、exit函式和return函式的主要區別是: 1)exit用於在程式執行的過程中隨時結束程式,exit的引數是返回給OS的。main函式結束時也會隱式地呼叫exit函式。exit函式執行時首先會執行由atexit()函式登記的函式,然後會做一些自身的清理工作,同時重新整理所有輸出流、關閉所有開啟的流並且
c語言中external,static關鍵字用法
static用法: 在C中,static主要定義全域性靜態變數、定義區域性靜態變數、定義靜態函式。 1、定義全域性靜態變數:在全域性變數前面加上關鍵字static,該全域性變數變成了全域性靜態變數。全域性靜態變數有以下特點。 a.在全域性區分配記憶體。 b.如果沒有初始化,其預設值為
C語言中的Scanf函式常見用法之陷阱總結:
C語言中的Scanf函式常見用法之陷阱總結: // C/C++語言中,scanf函式使用陷阱注意: //常見使用方式一: scanf("%d",&a,&b);----遇到空格或\n或非數字結束 //常見使用方式二: scanf("%s",array);----遇到
C語言中scanf與分隔符(空格回車Tab)
眾所周知,C語言中的scanf函式的作用是從標準輸入裝置(通常是鍵盤)讀取輸入值,並存儲到引數列表中指標所指向的記憶體單元。下面從幾個方面說一下一些稍微細節的東西。下面的實驗都在vc6.0中通過。 1、scanf的返回值 scanf通常返回的是成功賦值(從標準輸入裝置
C語言中static的含義和用法
———————————– 測試環境:linux 開發語言:c 編譯工具:gcc ———————————– static 顧名思義是靜態、靜止的意思 個人理解的含義是私有、靜態 私有就是隱藏-> 1.static函式只能聲明後的本文中呼叫
C語言中struct與union的區別是什麼?
相同struc(結構體)與union(聯合體)都是符合結構,由多個不同的資料型別成員組成。不同1. 佔用地址空間unionunion所有成員共用一塊地址空間,即聯合體只存放了一個被選中的成員。所有成員不能同時佔用記憶體空間,它們不能同時存在,所以一個聯合型變數的長度等於其最長
C語言中sizeof與strlen 的區別
字符指針 系統 32位 大小 添加 std 指針 為什麽 一行 sizeof與strlen是有著本質的區別,sizeof是求數據類型所占的空間大小,而strlen是求字符串的長度,字符串以/0結尾。總的來說sizeof把‘\0‘也給數上了,而strlen遇到‘\0‘就停止計
C++語言中std::array的神奇用法總結,你需要知道!
摘要:在這篇文章裡,將從各個角度介紹下std::array的用法,希望能帶來一些啟發。 td::array是在C++11標準中增加的STL容器,它的設計目的是提供與原生陣列類似的功能與效能。也正因此,使得std::array有很多與其他容器不同的特殊之處,比如:std::array的元素是直接存放在例項內部,
由淺至深->C語言中union和enum關鍵字的經典問題分析
引言:由淺至深系列的第二篇文章,繼續體悟語言中的一些細節! 文章嚮導 union的自我介紹 union與系統大小端 enum列舉的引入 真正意義上的常量? 正文 一、union的自我介紹 union(聯合/共用體)在語
C語言中typedef不能與儲存型別指示符同時用
C語言中,經常有如下的用法: typedefstruct tag { ... } MyType, *MyPtr; 一旦通過如上定以後,就可以用MyType來定義struct tag結構了。 以前我使用typedef的時候,是按照其字面意思理解的,所以進入了一個誤區
C語言中的typedef
中文 講解 tro table 現在 int 一個 cor 位置 typedef 的講解與應用實例 前言:我們學過C語言的人都應該聽過,或者說學過,甚至說用過typedef,多多少少都對其有所了解。不過就算沒聽過也沒關系,我們一起來探討一下。 闡述:typedef
C語言中#define的用法
inux 就是 linu head 突出 開發 ffffff 條件 就會 1.簡單的define定義#define MAXTIME 1000一個簡單的MAXTIME就定義好了,它代表1000,如果在程序裏面寫if(i<MAXTIME){.........}編譯器在處理
C語言中的struct和typedef struct<轉載>
對象 內部數據 編程 都是 內部 pre title HR 聲明 原文:http://www.nowamagic.net/librarys/veda/detail/1785 typedef為C語言的關鍵字,作用是為一種數據類型定義一個新名字。這裏的數據類型包括內部數據類
C語言中typedef和sizeof的註意事項
isp sizeof spa 註意 list數據 對象 audio 應該 user typedef的作用是給一個數據類型起一個別名。 typedef struct LIST { int data; }SeqList; SeqList 就相當於struct LIS