相关疑难解决方法(0)

我应该使用long long或int64_t作为可移植代码吗?

我有一个用C和C++编写的开源代码库.我正在寻找一个保证至少 64位宽的整数类型,可以使用开源C和C++编译器在大多数OS X(Intel,64位)和Linux机器上可靠地编译,而不需要太多对最终用户的额外工作.Windows和32位客户端支持目前并不重要.

我在OS X上做了一些测试,开发人员工具附带的最新GCC不支持C + 11模式(因此似乎不保证可用性long long).Clang也不支持这一点,但是long long在某个版本之后它支持C99模式.

当便携性是一个重要目标时,是否使用一般建议int64_t代替long long?使用格式说明符似乎很痛苦.

我是否可以可靠地转换int64_tlong long(以及unsigned与之等效uint64_t)以将其long long用作现有函数和库作为参数?(当然,又回来了.)

在这种心态下,如果我发布的代码需要Clang功能而不是GCC,那么Clang是否会取代GCC作为Linux上的首选编译器?在大多数情况下,在为最终用户提供源代码时,这个编译器是我可以期待的吗?

基本上,我想向其他开发人员提出一些建议,他们使用这两种类型的可移植C和C++代码,考虑到上述目标,他们可能会对可能是更好的长期方法提出一些建议. .

c c++ types int64 long-long

40
推荐指数
2
解决办法
3万
查看次数

标签 统计

c ×1

c++ ×1

int64 ×1

long-long ×1

types ×1