C語言中以字串形式輸出列舉變數
1. 列舉應用說明
每個列舉常量對應一個整形數字,很多時候可以像整形一樣使用;但是如果要求列印列舉變數名的字串,
辦法也有很多,檢視網上方法幾乎都需要轉換,要麼用陣列,下面要說的是一種可以算是直接列印的新方法;
程式碼:
-
#include <stdio.h>
-
#define ENUM_CHIP_TYPE_CASE(x) case x: return(#x);
-
enum cvmx_chip_types_enum {
-
CVMX_CHIP_TYPE_NULL = 0,
-
CVMX_CHIP_TYPE_DEPRECATED = 1,
-
CVMX_CHIP_TYPE_OCTEON_SAMPLE = 2,
-
CVMX_CHIP_TYPE_MAX
-
};
-
static inline const char *cvmx_chip_type_to_string(enum cvmx_chip_types_enum type)
-
{
-
switch (type){
-
ENUM_CHIP_TYPE_CASE(CVMX_CHIP_TYPE_NULL)
-
ENUM_CHIP_TYPE_CASE(CVMX_CHIP_TYPE_DEPRECATED)
-
ENUM_CHIP_TYPE_CASE(CVMX_CHIP_TYPE_OCTEON_SAMPLE)
-
ENUM_CHIP_TYPE_CASE(CVMX_CHIP_TYPE_MAX)
-
}
-
return "Unsupported Chip";
-
}
-
int main()
-
{
-
cvmx_chip_types_enum a;
-
while(1){
-
printf("input(0~3):");
-
scanf("%d",&a);
-
if(a<CVMX_CHIP_TYPE_NULL||a>CVMX_CHIP_TYPE_MAX){
-
printf("error,you must input number between 0 and 3,
-
please try again!\n\n");
-
continue;
-
}
-
printf("\n");
-
printf("the result:%s \n\n",cvmx_chip_type_to_string(a));
-
}
-
return 0;
-
}
2. 測試結果
如果不想全部列印出名字,只想列印出後面幾個字元,例如“CVMX_CHIP_TYPE_DEPRECATED”,
只要列印後面“DEPRECATED”字串,上面程式碼只需修改巨集:
#define ENUM_CHIP_TYPE_CASE(x) case x: return(#x); 改為下面所示
#define ENUM_CHIP_TYPE_CASE(x) case x: return(#x+15); //從第16個字串開始列印,不要前面15個
結果如下:
相關文章
- 輸出C語言中 變數的型別C語言變數型別
- C/C++列舉enum分別列印輸出列舉子和列舉值的方法C++
- 擷取字串以多行的形式輸出字串
- 【C】 30_C語言中的字串C語言字串
- C語言中的 static變數、static函式C語言變數函式
- c語言中的變數儲存區域C語言變數
- C語言中字串與整數的相互轉換C語言字串
- C語言sizeof()變數、字元、字串C語言變數字元字串
- 統計字串中數字個數,並將數字字串形式輸出字串
- C語言中輸入輸出重定,freopen()妙用。C語言
- 簡單介紹python輸出列表元素的所有排列形式Python
- 在c語言中輸出8進位制數,16進位制數C語言
- Go語言中的變數作用域Go變數
- Swift語言中為外部引數設定預設值可變引數常量引數變數引數輸入輸出引數Swift變數
- MVC接收以post形式傳輸的各種引數MVC
- C語言中的命令列引數C語言命令列
- dart系列之:dart語言中的變數Dart變數
- c 語言輸出1000以內的逆序數
- c語言中資料的格式化輸出C語言
- C語言中變參函式傳參探究C語言函式
- C語言中的例子--偽隨機數C語言隨機
- C語言中sync()C語言
- C語言中有C語言
- c 語言中巨集定義和定義全域性變數的區別變數
- c語言中%f輸出double型和float型值C語言
- C 語言中返回字串函式的四種實現方法字串函式
- C語言中 struct成員變數順序對記憶體的佔用C語言Struct變數記憶體
- C++筆記:輸入輸出、變數、變數加減乘除C++筆記變數
- 以$t形式使用flutter多語言Flutter
- C/C++程式語言中的基礎知識(一)--格式化輸入輸出C++
- Go 語言在命令列以表格的形式輸出結構體切片Go命令列結構體
- C語言中的#和##C語言
- c++語言中類的私有型別或保護型別成員變數C++型別變數
- C語言中指標, 陣列和字串(Pointer, Array and String in C Programming Language)C語言指標陣列字串
- 解析C語言中的sizeofC語言
- C語言中extern的用法C語言
- c語言中sizeof詳解C語言
- c語言中的&的用法C語言