C error: expected ';', ',' or ')' before '...' token
C error: expected ';', ',' or ')' before '...' token
我有问题。 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...);
不知道有多少个参数。我想用变量函数来解决这个问题。
C 中的可变参数是无类型且未命名的。可变函数的正确原型是:
returnType functionName(type1 ordinaryArg1, type2 ordinaryArg2, ...)
...
前至少需要一个普通参数。您只能通过 stdarg.h
.
中的函数访问可变参数
参数列表不应有类型或名称
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
错误表明编译器在省略号之前需要以下内容之一:
-分号
-逗号
-右括号
所以,原型没有正确声明。
声明至少需要一个命名变量,最后一个参数必须是省略号。
例如,如果您打算将整数传递给该方法,则声明可以如下所示:
int sum (int count, ...);
我有问题。 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...);
不知道有多少个参数。我想用变量函数来解决这个问题。
C 中的可变参数是无类型且未命名的。可变函数的正确原型是:
returnType functionName(type1 ordinaryArg1, type2 ordinaryArg2, ...)
...
前至少需要一个普通参数。您只能通过 stdarg.h
.
参数列表不应有类型或名称
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
错误表明编译器在省略号之前需要以下内容之一: -分号 -逗号 -右括号
所以,原型没有正确声明。 声明至少需要一个命名变量,最后一个参数必须是省略号。
例如,如果您打算将整数传递给该方法,则声明可以如下所示:
int sum (int count, ...);