问题标签 [stdint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - C 中 ptrdiff_t 定义在哪里?
ptrdiff_t
C中定义在哪里?
c - 编译时检查 stdint.h 是否存在
我正在使用旧的嵌入式 C 代码来定义类型uint8_t, uint16_t
和使用关键字 uint32_t
在头文件中。typedef
为了讨论,假设文件typedefs.h
包含这些定义。
在我的新 C 源代码模块中,我包含stdint.h
. 我还包括其他包含typedefs.h
在层次结构中的头文件。正如预期的那样,编译器抱怨多个定义的符号。
我想修改遗留文件typedefs.h
,以便它只声明uint*_t
类型,如果stdint.h
不包含或者更好,如果uint*_t
没有定义类型。
我的理解是#ifndef
不能使用,因为typedef
它不是预处理器指令。
那么我如何告诉编译器不要定义uint*_t
它们是否已经存在(或者是否stdint.h
已经包含)?
注意:如果 C 规范定义的标准包括头文件的保护定义,这将很容易。
FWIW,我正在为 ARM9 处理器使用 Green Hills 编译器 4.24。
c - 常见架构的最快整数类型
标stdint.h
头缺少int_fastest_t
与类型uint_fastest_t
相对应的和{,u}int_fastX_t
。对于整数类型的宽度无关紧要的情况,如何选择允许处理最多位且对性能的影响最小的整数类型?例如,如果使用一种简单的方法在缓冲区中搜索第一个设置位,则可能会考虑这样的循环:
自然, usingchar
会导致比 . 更多的操作int
。但可能会导致比在32 位系统上long long
使用的开销等更昂贵的操作。int
我目前的假设是针对主流架构,使用long
是最安全的选择:在 32 位系统上是 32 位,在 64 位系统上是 64 位。
ruby-on-rails - 在 Rails 中安装 RMagick-gem 时出现问题
我整天都在研究教程,试图安装 RMagick,现在我估计已经走得很远了,但是偶然发现了一个我真的不知道如何解决的错误,也没有得到任何有用的信息。
当我尝试安装 gem 时,我收到以下消息:
我想粗体部分是重要的部分,我做了一些研究并且明白 stdint.h 是某种头文件,但我不知道如何安装它。
我还检查了 mkmf.log 文件,它为我提供了一些易于阅读的信息:
检查 Ruby 版本 >= 1.8.5... -------------------- 是
有人有想法么?
非常感谢您的帮助!
问候, 埃米尔
c - 带有 typedef 整数的 Printf,尤其是 64 位
考虑这段代码:
这在 x86 上运行良好。在 x64 上, int64_t 实际上是 a long
,而不是 a long long
,并且虽然long
和long long
在 x64 上大小相同,但编译器会生成错误:
src/cpfs/bitmap.c:14:警告:格式“%lld”需要类型“long long int”,但参数 6 的类型为“Blkno”</p>
- 我怎么知道
printf
我正在传递 64 位类型? #define
有没有比使用上述方法更好的方法来标准化用户类型的规范BLKNO_FMT
?
visual-studio - Visual Studio 2010 中的 stdlib.h / stdint.h 在哪里?
我在谷歌上搜索了一下,听说虽然stdint.h
旧版本的 Visual Studio 没有附带,但它应该在 Visual Studio 2010 中。
但是,我有这个项目应该使用它,但它说它找不到stdlib.h
or stdint.h
。
为什么会这样,我该如何解决?
在 x86 Windows 7 机器上运行带有 .NET 4.0 的 Visual Studio 2010。
c - uint32_t 和其他 stdint 类型的 atoi 或 strtoul 等价物是什么?
我正在寻找将字符串转换为stdint.h整数的标准函数,例如
c - 为什么这会导致溢出?
据我了解,由 C99 (stdint.h) 定义的 uint64_t 定义为 8 个字节(= 64 位)的长度,因此允许最大值为 2^64 - 1。但是,当我尝试以下代码片段时, uint64_t 溢出,即使它远不接近 2^64 - 1:
帮助将不胜感激。
c - INT_FAST16_MAX 不反映 MSVC 2010 中的类型大小?
C99 定义int_fast16_t
为“通常最快且至少具有指定宽度的整数类型”,Microsoft 在 MSVC 2010 中将其定义为 32 位整数:
然而,微软已经设置了不反映实际基础数据类型的限制:
人们会假设该标准的意图是如下所示:
否则这会使常量完全多余?
编辑:如预期的 NetBSD 设置示例:
xcode - #include 头文件问题上的命名空间
我将代码从 Windows 机器移植到 Mac。我正在使用带有 Xcode 3.2.5 的 OS X 10.6
我有一个名为 api.h 的头文件,其中包含以下代码:
ocip.h 包括 #include stdint.h
,它具有以下 typedef:
现在回到 api.h 我有以下课程:
ocip::uint32_t m_nMode;
编译器告诉我命名空间“ocip”中的 uint32_t 没有命名类型。
任何想法我做错了什么?