【发布时间】:2012-10-07 18:24:55
【问题描述】:
好吧,我很确定之前已经以某种方式讨论过这个问题,但我显然太愚蠢了,找不到它。
首先:我不是在寻找 va_list 和其他宏。 我正在寻找的是类似于 main-function 参数的东西。
你们都知道的默认原型是:
int main(int argc, char *argv[]);
现在,我想为我的程序提供类似的东西,但不知道具体如何。
假设我们有这个函数:
void Function(int argc, unsigned short *args[]) {
for(int i = 0; i < argc; ++i) printf("%hu ", args[i]);
}
我想要这样的函数调用:
Function(5, 1, 2, 3, 4, 5);
这行得通吗? 因为我不想要 va_list 的“杂乱无章”,也不想创建:
void AnotherFunction() {
unsigned short Args[] = { 1, 2, 3, 4, 5 };
Function(5, Args);
}
只是因为在这种情况下我只需要一个简单的指针。 有人可以指出我正确的方向吗?非常感谢。
编辑: 谢谢大家的宝贵意见。我将满足于“目前不适用于标准 C/C++,并寻找一种不同的方法来解决我的问题。
再次感谢您。
【问题讨论】:
-
@chris 不,恐怕我只能使用标准 C++。
-
啊,这个想法就完蛋了。无论如何都应该采用向量。
-
@ATaylor 看起来你一直在用 Java 编程。据我所知,C++ 没有这个“特性”,这是 Java 实现可变参数的结果。
-
你想要什么? C 和 C++ 在这方面完全不同
-
@Code-Guru 我也一直在用 Java 编程,这是真的。我只是......你知道,希望在 C 或 C++ 中它是可能的。