C 如何将参数中的参数传递给二维字符数组?
我需要从uu VA_ARGS中得到一个函数的结果,然后我需要将每个参数的字符串传递给一个二维字符数组。如果您在C99以下,您可以使用C 如何将参数中的参数传递给二维字符数组?,c,macros,C,Macros,我需要从uu VA_ARGS中得到一个函数的结果,然后我需要将每个参数的字符串传递给一个二维字符数组。如果您在C99以下,您可以使用 给我们你的密码。如果您没有代码,请先自己尝试一下并阅读论坛规则。您已经成为这里的会员很长时间了,您应该有足够的时间阅读,特别是名为和的部分,以及如何创建一个。 #include <stdio.h> #define MACRO(...) func( \ sizeof((char *[]){__VA_ARGS__}) / sizeof(char
给我们你的密码。如果您没有代码,请先自己尝试一下并阅读论坛规则。您已经成为这里的会员很长时间了,您应该有足够的时间阅读,特别是名为和的部分,以及如何创建一个。
#include <stdio.h>
#define MACRO(...) func( \
sizeof((char *[]){__VA_ARGS__}) / sizeof(char *), \
(char *[]){__VA_ARGS__} \
)
void func(size_t n, char **p)
{
size_t i;
for (i = 0; i < n; i++) {
printf("%s\n", p[i]);
}
}
int main(void)
{
MACRO("abc", "def", "ghi");
return 0;
}
#include <stdio.h>
#define macro(...) func((char *[]){__VA_ARGS__, NULL})
void func(char **p)
{
while (*p != NULL) {
printf("%s\n", *p);
p++;
}
}
int main(void)
{
macro("abc", "def", "ghi");
return 0;
}