能否截断C预处理器标识符?及函数名生成相关技术问询
C语言中#define的标识符反向截断问题及替代方案
在C语言中,使用#define指令时,我们可以借助标记粘贴运算符##将标识符与其他文本进行拼接,但有没有办法实现反向操作?比如如下示例:
#define millimeter // 截断为 milli // 转换为 millisecond
我原本希望将该功能用于函数名生成:当调用不存在的函数millimeter()时,能自动生成包含millisecond的代码。需要说明的是,上述仅为应用场景示例,我不确定即便实现标识符截断是否能达成该需求。
编辑补充:
正如大家所说,这确实是一个XY问题。我原本期望调用millisecond()时,能自动生成包含millimeter()的代码,但发现无法实现。目前我已使用如下宏定义:
#define TIME_FUNC_DEFINE(unit) function_definition
通过TIME_FUNC_DEFINE(millis)即可按需创建millisecond和millimeter。
内容的提问来源于stack exchange,提问作者Nathan29006781
相关产品推荐
相关产品推荐

