compiler-warnings相关内容
我们的项目使用C ++ 11/14,我们想使用 nullptr 代替带有指针的 0 或 NULL ,即使在允许 0 (作为整数文字). 我有以下代码: int main(){int * ptr1 = nullptr;//#1int * ptr2 = 0;//#2} 如果我使用GCC(5.3.0)和标志 -Wzero-as-null-pointer-constant 进行编译,则会在#
..
看起来像这样的代码片段即使没有-Weverything也可以在不发出警告的情况下用clang编译: double x;...如果(fabs(x> 1.0)){...} 我错过了什么吗?还是编译器和C ++标准认为将 bool 转换为 double 是有意义的事情? 解决方案 这是使 bool 成为整数类型的结果.根据C ++标准,第3.9.1.6节 布尔类型的值是 true
..
考虑以下 最小的,可复制的示例 : 接口代码{静态void main(String [] args){象征(String.valueOf(真的 ?'一种' :真的 ?'b':真的 ?'C' :失败()));}私有静态无效符号(字符串符号){System.out.println(symbol);}私有静态R fail(){抛出空}} (接近最小值, true 是一个有用的布尔表达式的代
..
我在C ++中有一个复杂的多行宏代码(可处理某些几何图形并在RT中计算其物理属性),该代码已被多次使用并且无法转换为函数(没有巨大的空间和性能优势).问题是我有时需要在禁用部分代码(在针对特定任务/机器的编译时)中配置代码,如下所示: #define some_macro \bla;\bla;\如果(0){\bla;\bla;\bla;\} \bla; 如您所见,由于宏的重复使用,这会导致
..
在以下示例中: struct Foo {[[maybe_unused]] int成员= 1;无效bar(){[[maybe_unused]] int local = 0;}};int main(int argc,char * argv []){Foo f {};f.bar();返回0;} GCC发出警告,而Clang和MSVC没有: 警告:'maybe_unused'属性被忽略[-Wat
..
按预期,C/C ++编译的确会失败并显示“警告:指针与整数之间的比较".对于以下程序: #includeint main(void){return(int *)42 == true;} 但是,当 true 文字更改为 false 时,编译不会失败.为什么? 已确认:clang-1100.0.33.12,gcc 7.5.0 无法确认:g ++ 7.5.0
..
有人可以向我解释为什么我收到此警告吗?我已经测试了代码并且可以正常工作,我得到了我应该在那里获得的价值.这是错误的警告还是我缺少什么? [DataMember(Name ="modifyDate")]私人长modifyDate;公共DateTime lastModified{得到{返回DateTimeConverter.FromUnixTime(modifyDate);}} 解决方案 这
..
受保护的异步任务HandleValidSubmit(){Mapper.Map(EditEmployeeModel,Employee);员工结果=空;如果(Employee.EmployeeId!= 0){结果=等待EmployeeService.UpdateEmployee(Employee);}别的{结果=等待EmployeeService.CreateEmployee(Employee);}如
..
我收到此警告:警告:$ a可能在声明前使用.对于我的函数: Func test()如果(IsDeclared("a"))然后ConsoleWrite($ a)别的ConsoleWrite(“未声明")万一EndFunc全局$ a =“测试"测试() 可以通过使用全局变量作为函数的参数来避免.但是我需要这种构造,因为它与文件操作有关,我不想在每次需要该变量时都执行该文件操作. 如何做到
..
我正在制作一个C ++程序,并且有一个警告不断出现(我正在使用g ++): warning:指向算术[Wpointer-arith]中使用的函数的指针 ,我想知道:此警告消息到底是什么意思?编译器试图告诉我的问题是(一般而言),以便我可以更好地理解我在做什么错了? Google搜索为人们代码中的特定问题提供了特定的解决方案,但从不告诉我该警告消息要说的是什么. 我只是在学习数组
..
尝试在IntelliJ中构建Kotlin/Ktor应用程序时,出现多种形式的警告 Warning:(276, 6) Kotlin: This class can only be used with the compiler argument '-Xuse-experimental=kotlin.Experimental' 是输出.警告是指 @UseExperimental(Ktor
..
这是代码: #include unsigned char f(uint32_t RGBA) { return (RGBA>>24) & 0xFF; } 使用-Wconversion编译时,会引起“警告:从'uint32_t {aka unsigned int}转换为'unsigned char'"可能会更改其值[-Wconversion]".如果我将shift
..
有什么方法可以抑制这段代码中gcc生成的警告: int main() { struct flagstruct { unsigned flag : 1; } a,b,c; a.flag = b.flag | c.flag; return a.flag; } 警告是 warning: conversion to 'unsigned c
..
在使用以下代码时得到警告: 警告:扩展的初始化程序列表仅适用于std c ++ 11 结构测试{ int a; int b; }; //以前是const test atest [] = {{2,3} {4,5}}; const test atest [] = {{2,3},{4,5}}; 如何删除它?我尝试使用解决方案,但是没有用。 解决方案
..
我正在开发USB读取Java程序,以获取连接的USB设备的名称。这是我写的代码: import java.io.UnsupportedEncodingException; import java.util.List; import javax.usb。*; import javax.usb.UsbDevice; import javax.usb.UsbDisconnecte
..
我是初学C#的人,刚刚开始编写我的第一个程序。我目前在while循环之一中遇到障碍。通常,我发现循环之外我的变量按预期运行,但是由于某种原因,Visual Studio发出警告说“变量'itemPrice'已分配,但从未使用过它的值。” 我如何获得该警告以消除并避免任何不良行为? 使用系统; 类程序 { public static void Main() { // /
..
我正在使用以下代码格式化 HRESULT 消息,并将消息写入文件,仅当 HRESULT 为错误。 该代码可以编译并正常运行,只不过我正在关注编译器警告: 警告C6031返回值被忽略:'wcsrchr'。 我不想禁用警告,但要解决它,但是我'不知道怎么办? 这是最低的可编译代码: //编译为:/ Wall #include #include
..
我在不使用IB的iPhone应用程序上工作,并在基于视图的应用程序中以编程方式在UIViewController中创建了包含三个项目的UITabbar,我使用了一个委托方法,如果没有下面的代码片段中的最后一行,该方法将无法工作(setDelegate方法)。我没有tabbarviewcontroller。 UITabBar * tabbar = [[UITabBar alloc] init
..
我包括的两个库在各自的.h文件中共享一个宏的相同定义。 #定义MAX //文件中MAX的第一个定义 #define MAX //不同文件中的MAX的第二个定义 并在编译中得到 ... / httpd.h:43:1:警告:“ MAX”重新定义了 和 ... / opencv2 / core
..
每当我编译代码时,都会观察到以下两个警告: 警告:已定义但未使用“” 警告:未使用的变量'' 我尝试用Google搜索,但确实找不到关于这两个警告之间的区别的任何有用的线索或博客。 带有一些示例代码片段的示例将为我提供帮助,或者如果要复制某些现有线程,请随时参考。 解决方案 我认为两者之间的差别有些微妙,但这是代码段以及编译
..