gpt4 book ai didi

C 程序能否根据其值确定宏标识符/枚举名称?

转载 作者:太空狗 更新时间:2023-10-29 15:50:03 27 4
gpt4 key购买 nike

假设我们将一些错误代码定义为宏 -

#define ERR_SUCCESS 0
#define ERR_BAD_INPUT 1

...

或作为枚举数据类型-

enum err_t = { ERR_SUCCESS, ERR_BAD_INPUT, ...};

并且这些 id 之一由函数返回,例如 -

int foo(); /* if foo() returns 0, it means success, etc */

foo() 的调用者能否确定哪个标识符/名称(ERR_SUCCESS、ERR_BAD_INPUT、...)链接到 int 返回值?

最佳答案

没有。

处理器宏,顾名思义,在编译步骤开始前的预处理过程中被解析。在调用时,即在运行时,没有引用 ERR_SUCCESSERR_BAD_INPUT 等名称,这就是您无法在运行时确定标识符名称的原因。

类似的推理也适用于 enum,因为 enum 创建编译时常量,您无法在运行时获取标识符名称。

关于C 程序能否根据其值确定宏标识符/枚举名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43840565/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com