gpt4 book ai didi

c++ - 错误 : expected unqualified-id before ‘__extension__’ in Linux (Cent OS)

转载 作者:太空宇宙 更新时间:2023-11-04 09:00:07 24 4
gpt4 key购买 nike

我的代码如下,

namespace A
{
namespace B
{
unsigned int htonl(unsigned int address)
{
return 0;
}
}
}

现在我知道htonl是Linux中的一个库函数。即使我在命名空间下定义它,它也会产生上述错误。如何在不更改函数签名的情况下修复它?

最佳答案

这里的问题是 htonl ,至少在 Linux 中,是一个(有时)扩展为 __bswap32 的宏,这又是一个相当长的宏(其中包含 __attribute__((extension)))。宏不“关心”命名空间。

如果你真的想要你自己的函数 htonl (你可能不会,一般来说 - 称它为别的东西),然后你可以做

#ifdef htonl
#undef htonl
#endif

#ifdef是为了避免取消定义不是宏的东西。

或者您可以找出产生htonl 的头文件。 (在我的 Linux 安装中为 <arpa/inet.h>)并且不要将其包含在您的代码中。

关于c++ - 错误 : expected unqualified-id before ‘__extension__’ in Linux (Cent OS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23079998/

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