我有个问题。 C语言中的面向对象编程的概念得到了家庭作业。我需要使用可变参数函数。但是我错了。如果您能帮助我,我将不胜感激。我是编码新手。
RastgeleKarakter.h:
#ifndef RASTGELEKARAKTER_H
#define RASTGELEKARAKTER_H
struct RASTGELEKARAKTER{
// code
};
RastgeleKarakter SKarakterOlustur(int...); // prototype
void Print(const RastgeleKarakter);
#endif
RastgeleKarakter.c:
#include "RastgeleKarakter.h"
#include "stdarg.h
RastgeleKarakter SKarakterOlustur(int... characters){
//code
}
错误:
make
gcc -I ./include/ -o ./lib/test.o -c ./src/Test.c
In file included from ./src/Test.c:3:0:
./include/RastgeleKarakter.h:17:38: error: expected ';', ',' or ')' before '...' token
RastgeleKarakter SKarakterOlustur(int...);
我不知道有多少个参数。我想用变量函数解决这个问题。
最佳答案
参数列表不应具有类型或名称
RastgeleKarakter SKarakterOlustur(int count, ...)
{
va_list args;
va_start(args, count);
int i = va_arg(args, int);
}
使用
stdarg.h
头文件中定义的宏访问参数列表。 further reading如果按原始减速度,则意味着参数列表的所有成员都是整数,并且由于无论如何都将提供计数,请考虑将其更改为
int count, int * list