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】 30_C語言中的字串C語言字串
- c語言中的變數儲存區域C語言變數
- C語言sizeof()變數、字元、字串C語言變數字元字串
- 簡單介紹python輸出列表元素的所有排列形式Python
- 在c語言中輸出8進位制數,16進位制數C語言
- Go語言中的變數作用域Go變數
- C語言中變參函式傳參探究C語言函式
- c語言中資料的格式化輸出C語言
- dart系列之:dart語言中的變數Dart變數
- c 語言中巨集定義和定義全域性變數的區別變數
- c語言中%f輸出double型和float型值C語言
- c語言中返回整數值的長度C語言
- C語言中的#和##C語言
- C++筆記:輸入輸出、變數、變數加減乘除C++筆記變數
- c++語言中類的私有型別或保護型別成員變數C++型別變數
- 以$t形式使用flutter多語言Flutter
- 解決vscode c語言中scanf函式的輸入問題VSCodeC語言函式
- c語言中sizeof詳解C語言
- 解析C語言中的sizeofC語言
- C語言中extern的用法C語言
- c語言中的作用域C語言
- Python語言中合法變數命名有什麼規則?Python變數
- 關於c語言輸入字串的總結C語言字串
- c語言中預設引數的兩種型別C語言型別
- go語言中變數前加 *和& 有啥區別啊Go變數
- C語言輸出多位小數C語言
- c語言中的getchar()和EOFC語言
- C語言中結構體感悟C語言結構體
- C 語言中的 sscanf 詳解
- C 語言中的 time 函式函式
- c語言中const修飾符C語言
- static在C語言中的作用C語言
- Go 語言中的格式化輸出Go
- C語言資料型別、變數的輸入和輸出、進位制轉換C語言資料型別變數
- Python語言中變數名是什麼?命名規則有哪些?Python變數
- 【R語言入門】R語言中的變數與基本資料型別R語言變數資料型別
- C語言字串C語言字串
- C/C++獲取變數型別並輸出C++變數型別