如何输出#define值

mav*_*k30 0 c c++

我是这个论坛的新手,所以请放轻松我:)

我的代码中有以下内容

#define SYS_SBS     0x02 
Run Code Online (Sandbox Code Playgroud)

每当我尝试使用它并尝试输出时,我得到2作为值,但是我想让SYS_SBS作为我的程序的输出.有没有办法,我可以做到这一点.

我无法控制源代码.我只需要输出SYS_SBS.

其他详细信息:我无法更改某些头文件.但是我可以在.cpp文件中更改主要功能.我希望SYS_SBS作为输出.我正在使用卫星和我的接收器检测到的所有卫星,我必须输出它们是什么类型的卫星.在代码中,所有这些都是用这个十六进制数定义的.我只想输出SYS_SBS而不是2

BLU*_*IXY 9

#include <stdio.h>

#define SYS_SBS     0x02 
#define id(x) #x

int main(){
    printf("%s %d\n", id(SYS_SBS), SYS_SBS);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

  • @AmoghDikshit Eg`> gcc prog.c -Did(x)=#x`或put main.cpp (3认同)