C++ 枚举值转char*

本文介绍了如何在C++中使用#define操作符将枚举值转换为字符串,并探讨了宏中的#操作符的工作原理,包括字符串化、转义字符和空白处理。然而,从char*转换回枚举值的方法相对较复杂。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#define Name(value) #value

 

enum {

value_a, value_b, value_c

};

 

printf("%s",Name(value_a));

 

#操作符解释

In function-like macros, a # operator before an identifier in the replacement-list runs the identifier through parameter replacement and encloses the result in quotes, effectively creating a string literal. In addition, the preprocessor adds backslashes to escape the quotes surrounding embedded string literals, if any, and doubles the backslashes within the string as necessary. All leading and trailing whitespace is removed, and any sequence of whitespace in the middle of the text (but not inside embedded string literals) is collapsed to a single space. This operation is called "stringification". If the result of stringification is not a valid string literal, the behavior is undefined.

 

Char* 转枚举值暂时没找到简单的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值