mirror of
https://gitee.com/Lamdonn/varch.git
synced 2025-12-06 08:46:42 +08:00
1.3 KiB
1.3 KiB
介绍
arg模块主要针对应用不定参数的场合,可以获取不定参数的个数及指定位置的参数。
接口
函数
#define ARG_MAX // 支持最大的不定参数个数
#define ARGC(...) // 当前不定参数的个数,不支持区分空参数
#define ARGC0(...) // 当前不定参数的个数,支持区分空参数,但编译需要更多的空间,视情况选择使用
#define ARGS(x, ...) // 获取指定位置参数
在使用上只需关注以上的宏定义即可,其他的均可以无需关注。
使用例子:
static void test(void)
{
printf("ARG_MAX %d\r\n", ARG_MAX);
printf("ARGC %d\r\n", ARGC());
printf("ARGC %d\r\n", ARGC(A));
printf("ARGC %d\r\n", ARGC(A, B));
printf("ARGC %d\r\n", ARGC(A, B, C));
printf("ARGC %d\r\n", ARGC0());
printf("ARGC %d\r\n", ARGC0(A));
printf("ARGC %d\r\n", ARGC0(A, B));
printf("ARGC %d\r\n", ARGC0(A, B, C));
printf("ARGS %s\r\n", ARGS(0, "arg0", "arg1", "arg2"));
printf("ARGS %s\r\n", ARGS(1, "arg0", "arg1", "arg2"));
printf("ARGS %s\r\n", ARGS(2, "arg0", "arg1", "arg2"));
}
结果:
ARG_MAX 124
ARGC 1
ARGC 1
ARGC 2
ARGC 3
ARGC 0
ARGC 1
ARGC 2
ARGC 3
ARGS arg0
ARGS arg1
ARGS arg2