每個列舉常量對應乙個整形數字,很多時候可以像整形一樣使用,這個大家都知道;但是如果要求列印列舉變數名的字串,辦法也有很多,檢視網上方法幾乎都需要轉換,要麼用陣列,下面要說的是一種可以算是直接列印的新方法;
#include #define enum_chip_type_case(x) case x: return(#x);
enum cvmx_chip_types_enum ;
static inline const char *cvmx_chip_type_to_string(enum cvmx_chip_types_enum type)
return "unsupported chip"; }
int main()
printf("\n");
printf("the result:%s \n\n",cvmx_chip_type_to_string(a));
}return 0;
}
結果測試:
如何不想全部列印出名字,只想列印出後面幾個字元,例如「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語言中以字串形式輸出列舉變數
每個列舉常量對應乙個整形數字,很多時候可以像整形一樣使用 但是如果要求列印列舉變數名的字串,辦法也有很多,檢視網上方法幾乎都需要轉換,要麼用陣列,下面要說的是一種可以算是直接列印的新方法 如果不想全部列印出名字,只想列印出後面幾個字元,例如 cvmx chip type deprecated 只要列...
C語言中以字串形式輸出列舉變數
每個列舉常量對應乙個整形數字,很多時候可以像整形一樣使用 但是如果要求列印列舉變數名的字串,辦法也有很多,檢視網上方法幾乎都需要轉換,要麼用陣列,下面要說的是一種可以算是直接列印的新方法 如果不想全部列印出名字,只想列印出後面幾個字元,例如 cvmx chip type deprecated 只要列...
C 語言中將字串倒 輸出
include int main 用陣列實現如下 include include int main char str hello world int len strlen str char t for int i 0 i heap與stack得差別 heap是堆,stack是棧 stack得空間由作...