首页 > TAG信息列表 > compiler-warnings

c-警告:从“ long int”转换为“ double”可能会更改其值

我的代码如下: #include <iostream> #include <sys/time.h> using namespace std; int main(int argc, char** argv) { if(argv[0]) argc++; struct timeval m_timeEnd, m_timeCreate, m_timeStart;

Java原始类型声明

嗯,这个网站上有很多关于Java原始类型和泛型的问题.甚至有关下一行代码为什么会出现警告的问题: List<String> list = new ArrayList(); 并回答了很多次,因为ArrayList()是原始类型,因此由于现在列表不是“类型安全”的,因此编译器会发出警告,并且编写此代码行的选项仅是为了向后

带有功能gethostbyname的C编译为静态链接错误

我正在尝试使用函数gethostbyname()和交叉编译器arm-none-linux-gnueabi编译程序,但是当我在android上运行二进制文件时,它不起作用. 我的代码在下面: /* gethostbyname-example.c */ #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h>

Java函数收集和未经检查的警告

我已经编写了一个纯函数式的收集类-bag aka multiset-它可以正常工作,但是会在类定义本身以及使用中(尤其是在FBag.make中使用)生成许多未检查分配的警告.据我所知,问题主要来自以下事实:函数集合需要静态工厂方法而不是公共构造函数,并且静态方法无法访问泛型类型. 是否有一种优雅

Java警告:[未检查]未检查的转换

我有以下(部分)课程: public class Graph<O> { private ArrayList<Edge> edges; public ArrayList<Edge> getEdges() { return edges; } } 现在,在其他地方调用方法getEdges()并将结果存储在ArrayList< Edge>类型的变量中时,我得到警告:[unchecked]未经检查的

警告:隐式声明函数’getresuid'(和’seteuid’)

我想摆脱警告.当我编译源代码时 gcc -Wall -ansi -o test test.c 我回来了 test.c: In function ‘main’: test.c:12: warning: implicit declaration of function ‘getresuid’ test.c:14: warning: implicit declaration of function ‘seteuid’ 当我编译它没有-ansi开

c – 我可以让GCC警告将过多的类型传递给函数吗?

以下是一些明显有缺陷的代码,我认为编译器应该发出诊断信息.但是gcc和g都没有,即使我能想到的所有警告选项:-pedantic -Wall -Wextra #include <stdio.h> short f(short x) { return x; } int main() { long x = 0x10000007; /* bigger than short */ printf("%d\n

c – 覆盖单个文件的编译标志

我想使用一组全局标志来编译项目,这意味着在我指定的顶级CMakeLists.txt文件中: ADD_DEFINITIONS ( -Wall -Weffc++ -pedantic -std=c++0x ) 但是,对于一个子目录中的特定文件(比如说“foo.cpp”),我想切换 编译标志不适用-Weffc(包括商业库我不能改变).为了简化只使用-Wall的情况

c – 多字符恒定警告

为什么这是一个警告?我认为在很多情况下使用multi-char int常量而不是“无意义”数字或者使用相同值定义const变量更为明确.解析wave / tiff /其他文件类型时,可以更清楚地将读取值与某些“EVAW”,“数据”等进行比较,而不是相应的值. 示例代码: int waveHeader = 'EVAW'; 为什么这

c – [成员变量] [[maybe_unused]],GCC警告(错误?)该属性被忽略

在以下example中: struct Foo { [[maybe_unused]] int member = 1; void bar() { [[maybe_unused]] int local = 0; } }; int main(int argc, char* argv[]) { Foo f{}; f.bar(); return 0; } 海湾合作委员会发出警告,其中Clang和MSVC不: warnin

c – 为什么VC C4244警告(可能丢失数据)专门处理’int’?

下面的代码示例演示了从short到char的隐式转换在级别3触发,而从int到char的隐式转换仅在警告级别4触发. int main() { short as = 1; int ai = 1; char b1 = as; // warning C4244 (Level 3) char b2 = ai; // warning C4244 (Level 4) return 0; } 这是

c – 为什么在通过const引用将未初始化的值传递给函数时g不报告警告?

我正在查看给出in this earlier question的代码,其中包含的代码基本上如下: bool (*uninitializedFunctionPointer)(int, int); typedef std::multimap<int, std::string, bool(*)(int, int)> MultiMapType; MultiMapType myMap(uninitializedFunctionPointer); 请注意(顾名思义)u

c – “C4649:在此上下文中忽略属性”是什么意思?

这个警告意味着什么? 这是mcve. template<class K> class TTT{ public: alignas(alignof(K)) union{ char raw[sizeof(K)]; K rawK; }; //<-- error at this line }; 如果我在Visual Studio 2015中使用ctrl F7编译此单个文件,我将收到此警

c – 将编译器选项应用于特定文件

我正在尝试在visual studio中编译和构建一个项目,我开始研究使用/ Wall选项进行编译,它提供了所有警告. 我想知道有没有办法只在我感兴趣的文件上运行它,因为目前我对文件有一百万个警告,我没有能力或想要改变.解决方法:在“解决方案资源管理器”中,选择要包含所有警告的文件,右键

c – 引用临时变量 – 为什么编译器没有检测到它?

我希望这不是重复,我已经阅读了一些相关的问题,但似乎没有人涵盖这个案例: #include <iostream> int* return_dangling_p() { int x = 1; return &x; // warning: address of local variable 'x' returned } void some_func() { int x = 2; } int main(in

c – 如何在clang中禁用有关匿名结构的警告?

我想在我的C程序中使用匿名结构而没有此警告但保留-pedantic标志因为我想知道我是否在使用任何其他编译器扩展来自Microsoft / GCC on clang.我知道-Wno-gnu但它关闭的次数超出了我的预期,支持每个gcc的扩展名.可能吗?解决方法:-Wno-gnu-anonymous-struct should do the job.

c – 如何解决警告C4333(‘>>’:右移太大,数据丢失)

我有以下函数将任意大小的整数转换为缓冲区: template<typename T> std::string build_data_from(T val) { std::string result; for (int i = 0; i < sizeof(val); i++) { result.insert(0, 1, char(val)); val = val >> 8; } return result; }; 但是,使用un

Visual C警告C4800,为什么它只在return语句上触发?

我刚刚安装了Windows SDK v7.1(MSVC 10.0)并运行了我的代码(几乎)完全警告级别(W3,默认为qmake的CONFIG = warn_on)并且对于警告C4800感到惊讶:’type’:强制值为bool ‘true’或’false'(性能警告) 在以下代码中,stream是std :: istream,token是std :: string. // in some function

c# – 为什么不obj ?? null导致编译器警告

在引用类型与null合并的情况下,为什么这不是C#编译器中的编译器警告?这有什么意义吗? obj2 = obj ?? null; 解决方法:你的例子并不完全有意义,但这样的事情确实如此; d = a ?? b ?? c ?? null; 在这里,我说的是取三个的第一个非空值,如果它们都为null,则只取null.

将c#函数设置为非私有,将其标记为final或密封其声明类型

我正在维护一些旧的C#代码,并且不能过多地改变它的结构.我试图以安全的方式减少一些现有的编译器警告.某些功能给了我以下警告: Warning CS0108 ‘Function(string, string)’ hides inherited member ‘xyz.Function(string, string)’. Use the new keyword if hiding was int

如何在IntelliJ IDEA的Problems视图中显示javac警告?

在Eclipse中,Problems View显示javac错误javac警告,而在IntelliJ中我只得到错误.虽然在编辑文件时会突出显示警告,但我希望列出项目中的所有警告. 是否有一个选项可以准确配置或提供这样的视图的插件? 我不是在寻找检查视图.当我启用自动生成项目时,检查视图不会像“问题”视图那样

c# – 不要在顺序结构中声明可见的实例字段警告

我在wpf应用程序中使用了一些DllImports来捕获屏幕.我正在user32.dll中调用GetWindowRect.它需要传递给它的rect结构.结构的布局很重要,因为它是本机调用. 我正在尝试VS 2019预览2,它给了我以前没见过的警告. rect中的所有字段都会生成相同的警告: CA1051不声明可见的实例字段 在其

java – Eclipse 4.2资源泄漏通过单独的close方法

我正在使用Eclipse 4.2并启用了资源泄漏警告. 在我看来,此代码产生了错误的资源泄漏警告. public static void test(){ InputStream in = null; try { in = new FileInputStream("A"); } catch (IOException e) { return; }finally{ close(in); } } public s

java – 在JUnit测试中抑制编译器警告

在测试公共构造函数调用时,我的应用程序中的JUnit测试会生成从未在测试方法中的任何位置使用的临时对象.编译器随后抱怨未使用的对象分配.有没有办法有选择地抑制所有JUnit测试的编译器警告?测试是在一个单独的包中.解决方法:我认为答案是否定的,而不是在包装层面.我倾向于“欺骗”

android – 智能转换为kotlin.String

我正在尝试Kotlin并从编译器获得消息: Smart cast to kotlin.String 码: /*"mTripStatus" is a nullable String*/ var html :String = HTML html = if (mTripStatus!=null) html.replace("TRIP_STATUS_VALUE", mTripStatus) else html 这是什么意思?解决方法:如果满足if条件,编译