- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#include <stdio.h>
#include <string.h>
typedef struct STest
{
unsigned int uiRoll;
unsigned short usiVal;
} TTest;
int main()
{
TTest oTest = {0}; /* Initialize the Values with 0 */
printf( "The values are: %d, %d\n", oTest.uiRoll, oTest.usiVal );
return 0;
}
观察:
gcc -Wextra -o aa.cpp
编译警告:缺少成员 STest::usiVal 的初始值设定项
如何初始化结构?这样就没有警告信息了。
最佳答案
为什么不初始化两个成员?
TTest oTest = {0, 0};
或者,可能更好:
TTest oTest = { .uiRoll = 0, .usiVal = 0};
(假设您确实在编写 C 代码,应该使用 gcc
编译并以 .c
的扩展名保存。如果您将该代码保存在具有 .cpp
扩展名的文件,gcc
将切换到 C++ 模式,并在第二个版本上失败。)
另一种选择:将您的编译器升级到 GCC >= 4.7.2(可能普通的 4.7.0 就足够了)。该警告已删除,您可以使用代码中的简短形式。
关于c - 使用 GCC "-Wextra"选项编译时如何初始化 C 结构而不产生警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16318250/
Windows XP Pro 32位 Visual Studio 2008 VC Express版。 我已经安装了cmake并创建了CMakeLists.txt,我想跨平台使用Linux / wind
我现在正在阅读 gcc 手册,尤其是关于警告/错误标志的部分。在阅读了关于 -Wextra 标志的部分后,我想知道它是否有用。似乎它提示的东西似乎相当主观或品味问题。我对 gcc 没有那么丰富的经验,
clang编译器标志中的-Wextra的含义是什么? 我很好奇-Wall、-Werror等所有标志的含义是什么。我能够为其他人找到答案,但不能为 -Wextra 找到答案。 clang -Wall -
根据 https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html -Wextra-semi 是一个有效的标志。然而,对我来说,即使是 gcc-7.2
我想将所有结构成员初始化为 0。常见的解决方案是做这样的事情: struct foo bar = {0} 我创建了这个例子: #include struct Stru2 { int c;
我在我的一个项目中使用了 Boost.Log v2,当我构建它时收到以下警告: C:\boost-1.55\include\boost\log\utility\setup\common_attribu
我想在我的项目中使用 GCC 编译器选项 -Wextra。但它会导致 PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP 出现问题。 以下代码: static pthread
假设我有这样一个类: class MyClass { private: vector myMember; public: MyClass(const Y
我知道人们应该始终使用 -Wall 和 -Wextra 进行编译,因为它们会启用警告并帮助我们理解我们的错误(如果有的话)。 我读到不建议使用 -Wextra 编译器标志,因为它太冗长且误报率很高。
我正在尝试使用 Boost.serialize。它似乎工作正常,但是当我使用 g++ 打开 -Wextra 和 -Wall 警告时我收到警告(版本 10.2.0 ). 它运行良好,并且在我关闭警告时编
#include #include typedef struct STest { unsigned int uiRoll; unsigned short usiVal; } TTest;
取下面的代码 #include template T f(T x, unsigned y) { if (y (0); } using namespace std; int main() {
当我使用 GCC 编译并且不使用 -Wall 和 -Wextra 时,我不确定为什么会收到这些错误程序编译正常。但是,当我使用标志 -Wall 和 -Wextra 时,我收到编译错误。 这是我运行的测
我发现 Clang 的文档很差。我还没有找到很多可用的 Clang 警告标志列表。我对 C/C++ 警告特别感兴趣,但这是一个普遍的问题。 GCC 在此处列出并描述了警告,还列出了 -Wall 和 -
我想知道是否有一些聪明的、自动的方法来知道特定的编译器警告(例如 -Wunused-parameter)是否来自 -Wall 组, -Wextra,或另一个组,用于 GCC 和 Clang。 用例:我
通常,如果您有一个 lambda 而忘记使用它,您会像任何其他未使用的变量一样收到警告(如果已启用)。 auto foo = [](){}; 会产生 warning: unused variable
在 linux 上,我使用这些标志与 gcc 一起编译 CFLAGS=-Wall -pedantic -g -Wextra -pthread 我在 VS 中有哪些选项可以启用类似的标志?额外警告等 最
我想弄清楚在 Xcode 中在哪里添加额外的警告标志,如 -Wall 和 -Wextra,我在 Leopard 上使用 3.1.4 版。 Apple 的文档适用于旧版本,如果我按照他们的说明进行操作,
我是一名优秀的程序员,十分优秀!