gpt4 book ai didi

c++ - va_arg() 的问题

转载 作者:行者123 更新时间:2023-11-27 23:33:26 24 4
gpt4 key购买 nike

我想用这种方式编写一个带有可变参数的函数:

static void configElement(U32 localFaultId,
char* name,
U32 report,
U32 localId,
U32 detectTime,
U32 ceaseTime,...)
{
U32 i = 0;
U32 tmpNo = 0;
va_list ap;

if (nofFaults >= MAX_NOF_LOCAL_FAULTS)
{
//something here
return;
}
else
{

faultList[nofFaults].ceaseTime = ceaseTime;

va_start(ap, ceaseTime);
tmpNo = va_arg(ap, U32);
while ((tmpNo!= END_MARK) && (i < MAX_NOF_DEPEND))
{
faultList[nofFaults].dependList[i++].faultNo = tmpNo;
}


faultList[nofFaults].dependList[i].faultNo = END_MARK;
/* Finish by increment nofFaults parameter */
va_end(ap);
nofFaults++;
}
}

但是,我在编译这段代码时收到了错误消息:

fault_manager.cc:3344: error: expected primary-expression before ',' token
fault_manager.cc:3387: error: expected primary-expression before 'U32'
fault_manager.cc:3387: error: expected `)' before 'U32'
fault_manager.cc:3387: error: expected `)' before ';' token
fault_manager.cc:3387: error: expected `)' before ';' token

我不知道这里出了什么问题。我的平台是 Windows,我使用的是 cygwin+Eclipse(CDT)。 gcc版本为4.1.1。

任何想法将不胜感激!

最佳答案

看起来编译器不知道 U32 是什么。您是否包括了所有必要的 header ?

关于c++ - va_arg() 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3099595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com