相关疑难解决方法(0)

gcc中有128位整数吗?

我想要一个128位整数,因为我想存储两个64位数的乘法结果.在gcc 4.4及以上版本中有没有这样的东西?

c gcc x86-64 bigint 128-bit

39
推荐指数
3
解决办法
6万
查看次数

什么gcc版本支持__int128内在类型?

gcc docs下,128位整数是:

作为扩展,整数标量类型__int128支持具有足够容纳128位的整数模式的目标.只需写入__int128带符号的128位整数,或写入unsigned __int128无符号的128位整数.

GCC中不支持表示__int128长整数小于128位宽的目标的类型的整数常量.

我想知道什么gcc版本增加了对这种类型的支持,或者如果有,可以直接用来测试其存在的宏.

gcc

16
推荐指数
2
解决办法
3532
查看次数

存储IPv4/IPv6地址的有效方法

我正在开发一个C/C++网络项目,它应该能够使用IPv4和IPv6网络堆栈.该项目仅适用于Linux.因此,我试图找到一种有效的方法来存储IP地址并区分协议系列.第一种方法是建立一个联盟:

struct ip_addr {
   uint8_t fam; // socket family type
   union {
       struct in_addr ipv4_sin_addr;
       struct in6_addr ipv6_sin_addr;
   }addr;
};
Run Code Online (Sandbox Code Playgroud)

第二种方法是typedef std::vector<unsigned char> IPAddressNumber在向量的字节数之后定义a 并产生差异.

第三种方法是使用gcc中的int128_t/uint128_t或__int128_t.

对于最后一种情况,我想知道哪些版本的GCC支持这些类型,适用于哪些平台(尤其是IA-32/IA-64)以及是否存在任何已知错误.此外,上述哪种解决方案可能是最方便的解决方案?

c++ gcc ipv4 ipv6 int128

7
推荐指数
2
解决办法
5689
查看次数

标签 统计

gcc ×3

128-bit ×1

bigint ×1

c ×1

c++ ×1

int128 ×1

ipv4 ×1

ipv6 ×1

x86-64 ×1