Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何将参数中的参数传递给二维字符数组?_C_Macros - Fatal编程技术网

C 如何将参数中的参数传递给二维字符数组?

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

我需要从uu VA_ARGS中得到一个函数的结果,然后我需要将每个参数的字符串传递给一个二维字符数组。

如果您在C99以下,您可以使用


给我们你的密码。如果您没有代码,请先自己尝试一下并阅读论坛规则。您已经成为这里的会员很长时间了,您应该有足够的时间阅读,特别是名为和的部分,以及如何创建一个。
#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;
}