gpt4 book ai didi

C 编程 : Preprocessor, 宏作为标记

转载 作者:行者123 更新时间:2023-12-04 20:03:33 25 4
gpt4 key购买 nike

我正在尝试做一些概念上与此类似的事情,但似乎无法让它工作(最后显示错误)有什么想法吗?

#include <stdio.h>

int main( int argc , char const *argv[] )
{
int abc_def_ghi = 42;
#define SUFFIX ghi
#define VAR(prefix) prefix##_def_##SUFFIX
printf( "%d\n" , VAR(abc) );
return 0;
}

// untitled:8: error: ‘abc_def_SUFFIX’ undeclared (first use in this function)

最佳答案

您只需要额外的间接访问:

#include <stdio.h>

int main( int argc , char const *argv[] )
{
int abc_def_ghi = 42;
#define SUFFIX ghi
#define VAR3(prefix, suffix) prefix##_def_##suffix
#define VAR2(prefix, suffix) VAR3(prefix, suffix)
#define VAR(prefix) VAR2(prefix, SUFFIX)
printf( "%d\n" , VAR(abc) );
return 0;
}

虽然看起来多余,但其实不然。

关于C 编程 : Preprocessor, 宏作为标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1767683/

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