- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如果我在我的代码中使用 sizeof
运算符并使用 size_t
,我是否必须包含 stddef.h
?我没有包含 stddef.h
,并且我的代码在 MVS2008 和 Borland C++ BuilderX 中编译时没有警告。
非常感谢...
最佳答案
sizeof()
,虽然看起来像一个函数调用,但实际上是一个运算符,是语言核心的一部分。无需包含。
size_t
在各种 header 中定义:stddef.h
、string.h
、stdlib.h
、和 stdio.h
。包含其中任何一个都足以在您的代码中使用 size_t
。
关于c - 如果我使用 sizeof 和 size_t,我是否应该始终包含 stddef.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2605217/
我正在使用 RHEL7,并且想要更新的 gcc 编译器。以下说明已发布 here我在 ~/bin/sourceInstallation 下安装了 gcc 7.3.0 检查我的版本: $ gcc --v
我目前正在准备C认证,在有关指针NULL的类(class)资料中,有这行让我很困扰: if you want to use the NULL symbol you have to include on
升级到 Ubuntu 13.10“Saucy”后,Clang 现在给我错误信息: clang -Wall -Werror -std=c99 -ggdb -O0 5.1.c -o 5.1 In file
我正在尝试使用 MSVC++ 2010 Express Edition 编译 Scintilla 控件,要使其正常工作非常痛苦,因为我需要一堆文件。在编译 SString.h 时,我注意到了这一点:
MSVC 实现的示例: #define offsetof(s,m) \ (size_t)&reinterpret_cast((((s *)0)->m)) //
我在 Windows 7 x64 SUA/Interix 的 64 位 GCC 编译器上编译 grep。 它在 stddef.h 中标记的行上阻塞: #ifndef _SIZE_T_DEFINED #
我想编译这段代码: #include #include #include int main ( int argc , char ** argv ) { printf ("%zu\n",
MSVC 的实现示例: #define offsetof(s,m) \ (size_t)&reinterpret_cast((((s *)0)->m)) //
每当我尝试编译这段代码时,总是会出现这个错误: In file included from /usr/include/wchar.h:6:0, from /usr/l
我正在使用 QT Creator (4.11.0) 为我的应用程序开发 QT GUI。 最近,我们的 IT 将我的操作系统更新到 Ubuntu 20.04(从 18.04 开始)——可能错误与此有关。
这是一个挑剔细节的问题,由三个部分组成。上下文是我希望说服一些人,无条件使用 的 offsetof 定义是安全的,而不是(在某些情况下)滚动自己的定义。该程序完全是用普通的旧 C 语言编写的,因此在
我正在编写一个工具来解析 C 系列源代码项目,基本上遵循这两个教程 1 2在 ubuntu 12.04 上的 clang 3.4 (trunk 192426) 上。 基于offical tutoria
我安装了 MinGW 并选择了那些数据包。 我也有使用命令检查我是否忘记下载一些关于GCC编译器的安装包。 我也有检查路径是否添加 C:\MinGW\bin。 当我认为一切准备就绪时,我制作了一个he
stddef.h 文件在已安装的 Nokia Qt SDK 包含文件夹中,但在运行 Qt Simulator 时仍然出现编译错误。有什么想法吗? 提前致谢! 最佳答案 当我尝试使用 Qt 的 VS20
我有一个在多个平台上编译的项目,其中之一是 Visual C++。我注意到我们经常破坏构建,因为开发人员使用了 errno 而没有包含 errno.h,但是因为他们在 Visual Studio 中工
如果我在我的代码中使用 sizeof 运算符并使用 size_t,我是否必须包含 stddef.h?我没有包含 stddef.h,并且我的代码在 MVS2008 和 Borland C++ Build
这个头文件应该定义NULL或size_t等宏,但是我发现/usr/include/linux/stddef.h是空的?为什么? 最佳答案 header 的实际位置是实现定义的。你看的不是典型的包含在
当我想使用 size_t 时在 C++ 中,我应该包含 或 ?我听几个人说是个坏主意,应该弃用。这是为什么呢? 最佳答案 stddef.h是 C 头文件。姓名size_t在它的全局命名空间中。 另一
为了开始使用 libclang,我构建了一个非常简单的程序来尝试加载一个非常简单的源文件。它因找不到“stddef.h”文件而失败。 这是使用 libclang 的程序: #include int
我对 c++ 比较陌生,一直在按照 Lazy Foo 的教程在 visual studio 2010 中安装 SDL2(但我使用的是 visual studio 2015)。 我现在已经按照指南进行了
我是一名优秀的程序员,十分优秀!