compiler-warnings相关内容

为什么我应该总是启用编译器警告?

我经常听到在编译 C 和 C++ 程序时我应该“始终启用编译器警告".为什么这是必要的?我怎么做? 有时我也听说我应该“将警告视为错误".我是不是该?我该怎么做? 解决方案 为什么要启用警告? C 和 C++ 编译器在报告一些常见的程序员错误默认方面是出了名的糟糕,例如: 忘记初始化变量 忘记从函数中返回一个值 printf 和 scanf 系列中的参数与格式字符串不 ..
发布时间:2021-12-01 14:56:18 C/C++开发

如何在没有“可能在声明前使用"的情况下访问局部范围内的全局变量?-错误?

我收到此警告:警告:$a 可能在声明前使用. 对于我的函数: Func test()如果 (IsDeclared("a")) 那么控制台写入($a)别的ConsoleWrite("未声明")万一结束函数全局 $a = "测试"测试() 可以通过使用全局变量作为函数的参数来避免.但我需要这个构造,因为它与我不想每次需要变量时都执行的文件操作相关联. 如何在不生成“可能在声明前使用"-错误​ ..
发布时间:2021-11-30 20:58:10 其他开发

更强大的 AC_COMPILE_IFELSE 功能测试?

Autoconf 的 AC_COMPILE_IFELSE 在不同的编译器(如 Sun 的 C++ 编译器和 IBM 的 xlC 编译器)下为我们错误检测功能.AC_COMPILE_IFELSE 似乎会检查返回值,但有些编译器不会设置它或将其设置为意外值.稍后,我们使用不可用的选项. 在我的非 Autoconf 构建脚本中,我使用 "fatal|error|illegal|unrecogniz ..
发布时间:2021-11-30 19:13:53 C/C++开发

assert() 带有消息

我看到某处断言以下列方式与消息一起使用: assert(("message", condition)); 这似乎很好用,只是 gcc 抛出以下警告: 警告:逗号表达式的左侧操作数无效 如何停止警告? 解决方案 使用 -Wno-unused-value 停止警告;(选项 -Wall 包括 -Wunused-value). 我认为更好的是使用另一种方法,例如 assert(co ..
发布时间:2021-11-30 11:30:02 其他开发

Java 中有效的@SuppressWarnings 警告名称列表是什么?

Java 中有效的 @SuppressWarnings 警告名称列表是什么? @SuppressWarnings("") 中 ("") 之间的位. 解决方案 这取决于您的 IDE 或编译器. 这是 Eclipse Galileo 的列表: all 取消所有警告 装箱以抑制与装箱/拆箱操作相关的警告 强制转换以抑制与强制转换操作相关的警告 dep-ann 抑制与已弃用 ..
发布时间:2021-11-25 17:08:23 Java Web开发

如何让 Intellij Idea 显示编译警告?

我正在使用 Intellij Idea 10 和 Java 6 JDK Update 7.当我运行 Build -->Rebuild Project 命令,并且 (javac) 编译生成警告,Idea 不会在 Messages 视图中显示什么这些警告.我只看到一个“信息:XX 警告"节点,但无法展开它以查看实际警告.或者我只是在状态栏上看到一条消息“编译成功完成,但出现 XX 警告".对于错误,I ..
发布时间:2021-11-22 16:35:32 Java Web开发

如何抑制有关已弃用 api 的 javac 警告?

当我编译时,javac 输出: 注意:某些输入文件使用或覆盖已弃用的 API.注意:使用 -Xlint:deprecation 重新编译以获取详细信息.` 我希望取消此警告.尝试 -Xlint:none 似乎没有帮助. 解决方案 根据我在文档中的说法,您无法在命令行上执行此操作. 根据javac 文档,-Xlint:none 仅禁用“Java 语言规范未强制要求"的警告.语言规范 ..
发布时间:2021-11-22 16:10:42 Java Web开发

如何故意导致自定义 java 编译器警告消息?

我即将提交一个丑陋的临时黑客,以便在我们等待修复外部资源时解决阻塞问题.除了用可怕的大注释和一堆 FIXME 标记它之外,我希望编译器抛出一个明显的警告消息作为提醒,这样我们就不会忘记将其删除.例如,类似于: [javac] com.foo.Hacky.java:192: 警告:FIXME 临时 hack 以解决库错误,修复库后删除我! 有没有一种方法可以通过我选择的消息引起有意的编译器警告? ..
发布时间:2021-11-22 16:01:09 Java Web开发

如何删除 100 条警告“隐式转换失去整数精度:'NSInteger'(又名'long')到'int'"更新到 arm64 后我得到了?

问题: 昨天我将我的一个大项目转换为支持arm64,然后我立即收到了 500 多个警告.其中大约 70% 是 NSInteger 被分配给 int 的地方,反之亦然,其余的是 NSUInteger 被格式化为 NSString 的地方,如下所示: NSInteger a = 123;NSString *str = [NSString stringWithFormat:@"Int:%d", ..
发布时间:2021-11-17 22:46:31 其他开发

忽略返回对象时的编译时警告

我知道Java通常允许不关心方法中返回的对象,但在这种情况下,我想确保Api的用户将返回的实例添加到列表中,否则将被执行马上. 普通 Java: Runnable someTask() {...}一些任务();//好的 应该 Runnable someTask() {...}addToExecutionList(someTask());//好的一些任务();//发出警告 有没有办法通 ..
发布时间:2021-11-15 01:37:26 其他开发

奇怪的 SAL 注释警告

我正在尝试为我的项目使用 Micosoft 的 SAL 注释,但是我收到以下警告,我不知道为什么. 例如,我创建了一个新的 C++ 控制台应用程序,并有以下代码: #include 课 随便{民众:_Check_return_ int Method(__in int number);};int main(){返回0;} 当我使用 Visual Studio 2008 进行编译时,我收到以 ..
发布时间:2021-11-10 23:09:39 其他开发

忽略返回值:'scanf'(关闭)

我正在用 C 编写程序,这是我的功能之一: void group3(){字符选择[5];printf("\n详细信息等");printf("\n如果您想订阅,请确认是/否:");scanf(“%s", 选择);如果(选择==“是")printf(“好");别的{printf(“好吧.");主要的();}} 但是当我尝试编译和调试程序时,出现了一个名为“忽略返回值:'scanf'"的警告.出现. ..
发布时间:2021-09-22 18:38:39 其他开发

检查工作的 C 编译器:“cl.exe - skipped":Visual Studio 2019

在运行我使用 cmake 的构建脚本时,我在构建过程中得到以下输出: ******************************************************************************** Visual Studio 2019 开发人员命令提示符 v16.7.5** 版权所有 (c) 2020 Microsoft Corporation********* ..
发布时间:2021-09-18 19:27:17 其他开发

为什么编译器会抱怨对齐?

我想了解更多关于对齐的信息.为什么 Microsoft 编译器 (Visual Studio 2012 Express) 会抱怨以下代码片段的对齐方式? __declspec(align(16)) 类 Foo{民众:虚拟 ~Foo() {}虚拟空栏()= 0;}; 这是编译器给我的警告: warning C4324: 'Foo' : 由于 __declspec(align()) 结构被填充 ..
发布时间:2021-09-18 19:02:08 其他开发

在Qt Creator中禁用-Wmissing-field-initializers警告

如何在Qt Creator中禁用 -Wmissing-field-initializers 警告? 我有一个Qt Creator/MinGW项目,当我对结构进行零初始化时: void test(){struct foo {int a,b;};foo a = {};} 我收到此警告: test.cpp:12:警告:缺少成员'test():: foo :: b'的初始化程序[-Wmis ..
发布时间:2021-04-23 20:08:28 其他开发

警告:“并非所有控制路径都返回值".C ++

对于我的小功能,我不理解此警告: int Fct_name(int nb1,int * nb2){开关(目的地){情况1 :返回Fct_1(nb1,nb2);情况2:返回-1;}} 有人可以帮助我吗? 解决方案 这是因为,正如警告所言,并非所有代码路径都返回一个值,而该函数具有一个独特的返回类型,该类型告诉编译器“嘿,我要退还一些东西."但是如果 Dest 不是1或2,则实际上不执 ..
发布时间:2021-04-23 20:08:25 其他开发

正在提供违反“应"的能力是否需要生成诊断消息,编译器错误/缺陷或功能?

上下文:C标准未将诊断消息归类为“警告".或“错误". 问题:通过处理某些“诊断消息"来解决问题.作为“警告"并且通过提供禁用警告生成的能力,某些编译器实施方式允许最终用户违反“应"的要求.不生成诊断消息的C标准要求.这是编译器错误/缺陷的津贴吗?如果没有,那么如何正确解释这种情况?作为允许违反“应"的“编译器"功能,不需要生成诊断消息的要求"? 示例: #pragma警告(禁用:34 ..
发布时间:2021-04-23 20:08:22 其他开发

如何通过编译器设置(不是pragma' s)告诉GCC将结构大小边界设置为4个字节?

我希望在GCC下编译的c ++程序的最大对齐长度为4个字节(结构成员).我真的可以通过#pragma pack指令来做到这一点.但是,对于我来说,这很不舒服,因为该项目很大,而且我需要使用#pragma pack制作一个标头,该标头必须包含在所有地方.现在,gcc编译器具有-mstructure-size-boundary = n选项,在此处 ..
发布时间:2021-04-23 20:08:19 其他开发

为什么我会收到警告CS0108有关属性从基类中隐藏方法的警告

鉴于以下类,C#编译器会向我发出此警告:- CS0108“'B.Example'隐藏继承的成员'A.Example(string)'.如果打算隐藏,请使用new关键字". A类{公共字符串示例(字符串){退还东西}}B级:A{公共字符串示例=>"B";} 如果使用运行此代码的类 class程序{静态void Main(string [] args){B b =新的B();Cons ..
发布时间:2021-04-23 20:08:16 其他开发

gcc mismatched-tags选项提供了“无法识别的命令行选项"

我试图在gcc上激活选项 -Wmismatched-tags (检测不一致的类/结构声明,这可能在使用正向声明时发生),但是在Ubuntu上我得到了 c ++:错误:无法识别的命令行选项'-Wmismatched-tags' 我的gcc版本: #gcc --versiongcc(Ubuntu 9.3.0-17ubuntu1〜20.04)9.3.0版权所有(C)2019自由软件基金会,In ..
发布时间:2021-04-23 20:08:13 其他开发