1 '#'运算符
作为预处理运算符,可以把记号转化为字符串
举例:
#include <stdio.h>
#define INT_TO_STR(n) #n
#define VERSION(major, minor) "V"INT_TO_STR(major)"."INT_TO_STR(minor)
#define ENUM_TO_STR(e) (#e)
typedef enum
{
USER_BUTTON_0 = 0,
USER_BUTTON_1,
USER_BUTTON_2,
USER_BUTTON_3,
USER_BUTTON_MAX
} user_button_t;
static char *enum_btn_id_string[] = {
ENUM_TO_STR(USER_BUTTON_0),
ENUM_TO_STR(USER_BUTTON_1),
ENUM_TO_STR(USER_BUTTON_2),
ENUM_TO_STR(USER_BUTTON_3),
ENUM_TO_STR(USER_BUTTON_MAX),
};
int main(void)
{
printf("VERISON is : %s\n", VERSION(2, 1));
printf("user_button enum:\n");
for (int i = 0; i < USER_BUTTON_MAX; i++)
{
printf("%s\n", enum_btn_id_string[i]);
}
return 0;
}