繁体   English   中英

错误:预期在'?'之前的')' 代币

[英]error: expected ‘)’ before ‘?’ token

因此,即使我正在编译的代码不包含“?”,我仍会收到此错误。 完全没有 我正在使用gcc作为我的编译器和链接器。 为什么会这样呢?

另外,当我从函数名称中删除“ l”时,错误消失了。 我糊涂了。

显示错误的代码段:

unsigned long htonl(unsigned long ll) //Says error is on this line
{
    UDWord x;
    UDWord y;

    x.ul = ll;
    y.uc[0] = x.uc[3];
    y.uc[1] = x.uc[2];
    y.uc[2] = x.uc[1];
    y.uc[3] = x.uc[0];
    return y.ul;
}

htonl有时在gcc的标准包含文件中定义为宏。 使用其他名称。

为了确保例程实际上是一个function ,而不是macro (某些标准库例程是,例如putchar通常是),可以使用#undef如下所示:

#undef htonl
unsigned long htonl(unsigned long ll) 
{
    UDWord x;
    UDWord y;

    x.ul = ll;
    y.uc[0] = x.uc[3];
    y.uc[1] = x.uc[2];
    y.uc[2] = x.uc[1];
    y.uc[3] = x.uc[0];
    return y.ul;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM