-2
變量指針參數如何創建具有可變的指針參數的函數 採取任何數量的指針和打印功能它如:創建在C
print("hello ","world ");
print("i'm ","adil"," blah "," blah");
結果那樣:
$ ./myprogramme
hello word im adil blah blah
我發現stdarg.h但我不知道如何做到這一點?
變量指針參數如何創建具有可變的指針參數的函數 採取任何數量的指針和打印功能它如:創建在C
print("hello ","world ");
print("i'm ","adil"," blah "," blah");
結果那樣:
$ ./myprogramme
hello word im adil blah blah
我發現stdarg.h但我不知道如何做到這一點?
在C中,您可以使用stdarg.h
創建variadic function。從維基百科的鏈接例如,
#include <stdarg.h>
double average(int count, ...)
{
va_list ap;
int j;
double sum = 0;
va_start(ap, count); /* Requires the last fixed parameter
(to get the address) */
for (j = 0; j < count; j++) {
sum += va_arg(ap, double); /* Increments ap to the next argument. */
}
va_end(ap);
return sum/count;
}
這幾乎是你想要的,但它需要一個NULL終止
#include <stdio.h>
#include <stdarg.h>
void print (char *first, ...)
{
va_list argptr;
char *next;
va_start (argptr, first);
next = first;
while (next) {
printf ("%s", next);
next = va_arg(argptr, char*);
}
va_end (argptr);
}
int main()
{
print("hello ","world ", NULL);
print("i'm ","adil"," blah "," blah", NULL);
return 0;
}
但通過添加不同的說法,有一個簡單的答案反正
printf("%s%s", "hello ","world ");
printf("%s%s%s%s", "i'm ","adil"," blah "," blah");
va_args是你需要的。互聯網上有一個教程。搜索'va_args' – 2014-10-22 00:02:42
如果你「找到stdarg.h」,你爲什麼不讀它是如何工作的?在互聯網上有數以千計的演示,教程和手冊。 – 2014-10-22 00:08:32