C語言中以字串形式輸出列舉變數

2021-10-05 09:35:01 字數 995 閱讀 5557

每個列舉常量對應乙個整形數字,很多時候可以像整形一樣使用,這個大家都知道;但是如果要求列印列舉變數名的字串,辦法也有很多,檢視網上方法幾乎都需要轉換,要麼用陣列,下面要說的是一種可以算是直接列印的新方法;

#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得空間由作...