C 中 ptrdiff_t 在哪里定义?
C 中 ptrdiff_t
在哪里定义?
Where is ptrdiff_t
defined in C?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
C 中 ptrdiff_t
在哪里定义?
Where is ptrdiff_t
defined in C?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
它在
stddef.h
中定义。该标头定义了整数类型
size_t
、ptrdiff_t
和wchar_t
、函数宏offsetof
和常量宏NULL
。It's defined in
stddef.h
.That header defines the integral types
size_t
,ptrdiff_t
, andwchar_t
, the functional macrooffsetof
, and the constant macroNULL
.如果您正在 Visual Studio 2015 或更高版本中查找
ptrdiff_t
,请务必注意,Microsoft 再次打破了所有可能的约定,没有在其ptrdiff_t
版本中定义ptrdiff_t
。自 Visual Studio 2015 起,它已成为 Unversal CRT(Windows SDK 的一部分)的一部分。stddef.h
中的所有类型定义现在都位于vcruntime.h
中 - 只有offsetof()
仍在stddef 中。 h
.您不应包含stddef.h
,而应包含stdint.h
,其中包含vcruntime.h
。如果您需要跨平台工作或与旧版本的 Visual Studio 一起工作,您可以使用如下内容:
If you are looking for
ptrdiff_t
in Visual Studio 2015 or newer, it is important to note that Microsoft is again breaking all possible conventions by not havingptrdiff_t
defined in their version ofstddef.h
which has, since Visual Studio 2015, became part of Unversal CRT (which is part of Windows SDK).All type definitions from
stddef.h
are now located invcruntime.h
-- only theoffsetof()
is still instddef.h
. Instead of includingstddef.h
you should includestdint.h
which includesvcruntime.h
.If you need this to work cross-platform or with older versions of Visual Studio you can use something like this:
它由 POSIX 标准定义:http://pubs.opengroup。 org/onlinepubs/9699919799/basedefs/stddef.h.html 其中类型可能是特定于实现的,但接口是 stddef.h
It is defined by the POSIX standard: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stddef.h.html Where the type is exactly may be implemetation-specific, but interface is stddef.h