#@R_403_5552@ ERR_SUCCESS 0#@R_403_5552@ 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,…)链接到int返回值?
解决方法 不是直接的,正如其他人指出的那样,这些标识符在运行时不可用,但你可以使用并行的名称列表( X Macro可以帮助):#include <stdio.h>#@R_403_5552@ ERRS \ X(ERR_SUCCESS) \ X(ERR_BAD_input) \ X(ERR_MORE)#@R_403_5552@ X(x) x,enum err_t {ERRS};#undef X#@R_403_5552@ X(x) #x,static char *err_name[] = {ERRS};#undef Xstatic int foo(voID){ /* ... */ return ERR_BAD_input;}int main(voID){ printf("%s\n",err_name[foo()]); return 0;}
输出:
ERR_BAD_input总结
以上是内存溢出为你收集整理的C程序可以根据其值确定宏标识符/枚举名称吗?全部内容,希望文章能够帮你解决C程序可以根据其值确定宏标识符/枚举名称吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)