- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
海湾合作委员会 4.4.1,C99
我正在使用 size_t
,size_t
是一个 unsigned int
。但是,这取决于您运行的是 32 位还是 64 位。
我将使用 size_t
来存储缓冲区的大小。
因此,如果跨架构使用,我认为这不会非常便携。
只是一个问题,在 32 位或 64 位上使用 size_t
。哪些情况会导致最严重的问题?
最佳答案
正如其他人所说,size_t
是正确的,并且完全可以接受用于存储 sizeof()
的结果或任何可表示对象的字节大小。您需要注意以下几点:
size_t
与一些无符号整数类型 的大小相同。它不一定与最大无符号整数类型、unsigned int
、unsigned long
等字节数相同。sizeof(size_t)
是实现定义的字节数,因此 memcpy
对其进行处理或分配给 uintmax_t
以外的任何整数类型是个坏主意。我什至不确定假设它的大小等于或小于 uintmax_t
是否安全。size_t
值写入二进制文件,然后由另一个进程、不同机器上或由使用不同编译器选项编译的东西将其读回 size_t
可以对您的健康有害。size_t
值并尝试在另一端使用 sizeof(size_t)
缓冲区接收它是相当不安全的。所有这些都是除 unsigned char
之外的任何其他整数类型的标准问题。所以 size_t
与任何其他整数类型一样可移植。
关于c - size_t 是便携的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1697048/
很难说出这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。如需帮助澄清此问题以便可以重新打开,visit the help center . 10年前关
我想做的是使 sbt 可移植,至少可以在不同的 Windows 机器之间移植,这样我的 sbt 插件、设置、ivy repo 等就不必在每台计算机上重新设置。 我的方法是把 sbt.bat , sbt
我似乎看到很多答案有人建议使用 生成随机数,通常伴随着这样的代码: std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_d
我正在使用 perl(希望它不会影响任何东西),但我需要知道如何为连接操作设置超时。问题是我不能永远等待连接操作的发生。如果它没有在几秒钟内发生,我宁愿放弃并继续前进。 socket(my $sock
是否有一种简单、可移植的方式(至少是 win32,linux)将 UTF-16 转换为 UTF-8 并返回?最好使用 boost。 谢谢你的帮助,托拜厄斯 最佳答案 两者都是libiconv和 icu
我将飞往澳大利亚(飞行约 15 小时),我想在飞机上继续我当前的项目。 我的项目(CakePHP 框架上的网站)需要一个 LAMP 包,所以我正在寻找一种非常便携、价格合理的设备,可以安装 LAMP,
我想在我们的编程课上在我们学校的计算机(在 Windows 下)上运行 python3。我在家里(使用 Windows)将 python 3.1 安装到 USB 闪存驱动器上,并将其带到学校。但是,它
出于教学目的,我正在寻找适用于 Mac、Windows 和可能的 Linux 的独立 PHP 二进制文件。 计划将二进制文件作为单个文件分发给学生,用于测试 PHP 脚本,而无需安装完整的 Web 服
关于好的 Git GUI 的任何建议。理想情况下应具有以下特征: 没有太多限制,即可以支持相对复杂的功能,例如 rebase ,没有-ff 以“学习模式”显示正在执行的 Git 命令,尤其是具有很多选
我是一名优秀的程序员,十分优秀!