gpt4 book ai didi

编译时数组连接

转载 作者:太空狗 更新时间:2023-10-29 15:30:26 24 4
gpt4 key购买 nike

C 支持在编译时连接常量字符串。我可以对任何常量数组做同样的事情吗? (例如,连接两个 char ** 数组。)

最佳答案

基本上没有,但您始终可以使用预处理器解决此问题。诀窍是定义没有大括号的数组:

#define ARRAY_ONE "test1", "test2", "test3"
#define ARRAY_TWO "testa", "testb", "testc"

现在,您可以在编译时使用逗号连接数组。然而,要使用它们,您要么必须用花括号将它们括起来,要么使用宏:

#define ARR(...) {__VA_ARGS__}

您现在可以像这样使用单个数组或任何您需要的串联:

char *arr1[] = ARR(ARRAY_ONE);
char *arr2[] = ARR(ARRAY_TWO);
char *arrc1[] = ARR(ARRAY_ONE, ARRAY_TWO);
char *arrc2[] = ARR(ARRAY_ONE, ARRAY_TWO, ARRAY_ONE, ARRAY_ONE);

不过,使用宏来实现这样的结果是不好的做法。

关于编译时数组连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7272411/

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