C 中 ptrdiff_t 在哪里定义?

发布于 2024-09-16 08:17:28 字数 40 浏览 6 评论 0原文

C 中 ptrdiff_t 在哪里定义?

Where is ptrdiff_t defined in C?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

饭团 2024-09-23 08:17:28

它在 stddef.h 中定义。


该标头定义了整数类型 size_tptrdiff_twchar_t、函数宏 offsetof 和常量宏NULL

It's defined in stddef.h.


That header defines the integral types size_t, ptrdiff_t, and wchar_t, the functional macro offsetof, and the constant macro NULL.

东北女汉子 2024-09-23 08:17:28

如果您正在 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 defined(_MSC_VER) && (_MSC_VER >= 1900) // UCRT was introduced in VS 2015
#include <stdint.h>
#else
#include <stddef.h>
#endif

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 having ptrdiff_t defined in their version of stddef.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 in vcruntime.h -- only the offsetof() is still in stddef.h. Instead of including stddef.h you should include stdint.h which includes vcruntime.h.

If you need this to work cross-platform or with older versions of Visual Studio you can use something like this:

#if defined(_MSC_VER) && (_MSC_VER >= 1900) // UCRT was introduced in VS 2015
#include <stdint.h>
#else
#include <stddef.h>
#endif
黑凤梨 2024-09-23 08:17:28

它由 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文