关于可变参数的有关问题。貌似没有有关问题,但编译就是不过,请高手帮忙
关于可变参数的问题。。。貌似没有问题,但编译就是不过,请高手帮忙
最近需要写个解析测试用例脚本的函数,参数需要可变。不过不知道哪里的问题,源文件在单独建工程时编译都没有错误,但是放到测试模块中去的时候,总是报错,试着放到工程模块的许多地方,都不能通过。。何解
UINT8 uiRc = PM_ERROR;
INT32 iResult = 0;
INT32 iNum = 0;
FILE *fp = NULL;
VOID *pvPara = NULL;
va_list ArgList;
(void)va_start(ArgList, pacFileName);
.//这里报 'void ' illegal with all types错
.
while (iNum > 0)
{
pvPara = (VOID *)va_arg(ArgList, VOID *);
//这里报syntax error : ') ';syntax error : missing ') ' before ', ';
//还有个warning== ' : 'void * ' differs in levels of
//indirection from 'const int '
ut_ReadOnePara(fp, pvPara);
iNum--;
}
.
.
va_end(ArgList);
看了一些变参的资料,语法应该都是正确的,不知道哪里出错了!?
------解决方案--------------------
那很可能就不是变长参数列表的问题
我以前也遇到过类似问题
测试函数过了,项目里面跑不通,
反复找程序的原因,
后来到底是工程的原因,
include和包含的lib,里面有和std标准库冲突的地方(我的那个bug)
我当时的方法,重新构建工程,每+一个include就编译一下,
这样错误定位比较准
错误信息也就比较有用了
最近需要写个解析测试用例脚本的函数,参数需要可变。不过不知道哪里的问题,源文件在单独建工程时编译都没有错误,但是放到测试模块中去的时候,总是报错,试着放到工程模块的许多地方,都不能通过。。何解
UINT8 uiRc = PM_ERROR;
INT32 iResult = 0;
INT32 iNum = 0;
FILE *fp = NULL;
VOID *pvPara = NULL;
va_list ArgList;
(void)va_start(ArgList, pacFileName);
.//这里报 'void ' illegal with all types错
.
while (iNum > 0)
{
pvPara = (VOID *)va_arg(ArgList, VOID *);
//这里报syntax error : ') ';syntax error : missing ') ' before ', ';
//还有个warning== ' : 'void * ' differs in levels of
//indirection from 'const int '
ut_ReadOnePara(fp, pvPara);
iNum--;
}
.
.
va_end(ArgList);
看了一些变参的资料,语法应该都是正确的,不知道哪里出错了!?
------解决方案--------------------
那很可能就不是变长参数列表的问题
我以前也遇到过类似问题
测试函数过了,项目里面跑不通,
反复找程序的原因,
后来到底是工程的原因,
include和包含的lib,里面有和std标准库冲突的地方(我的那个bug)
我当时的方法,重新构建工程,每+一个include就编译一下,
这样错误定位比较准
错误信息也就比较有用了