草庐IT

INTEGRAL_CONSTANT

全部标签

c++ - 有没有一种正统的方法来避免编译器警告 C4309 - "truncation of constant value"与二进制文件输出?

我的程序执行将二进制数据写入文件的常见任务,符合某种非文本文件格式。由于我正在写入的数据尚未存在于现有block中,而是在运行时逐字节放在一起,因此我使用std::ostream::put()而不是write().我认为这是正常程序。该程序运行良好。它同时使用std::stringstream::put()和std::ofstream::put()以两位十六进制整数作为参数。但是我得到编译器警告C4309:"truncationofconstantvalue"(inVC++2010)每当参数到put()大于0x7f。显然编译器期待signedchar,常数超出范围。但我认为实际上并没有

c++ - 有没有一种正统的方法来避免编译器警告 C4309 - "truncation of constant value"与二进制文件输出?

我的程序执行将二进制数据写入文件的常见任务,符合某种非文本文件格式。由于我正在写入的数据尚未存在于现有block中,而是在运行时逐字节放在一起,因此我使用std::ostream::put()而不是write().我认为这是正常程序。该程序运行良好。它同时使用std::stringstream::put()和std::ofstream::put()以两位十六进制整数作为参数。但是我得到编译器警告C4309:"truncationofconstantvalue"(inVC++2010)每当参数到put()大于0x7f。显然编译器期待signedchar,常数超出范围。但我认为实际上并没有

c++ - 为什么我们需要两个定义: integral constant expression and converted constant expression?

C++14中的§5.19/3定义了一个整型常量表达式和一个转换后的常量表达式:Anintegralconstantexpressionisanexpressionofintegralorunscopedenumerationtype,implicitlyconvertedtoaprvalue,wheretheconvertedexpressionisacoreconstantexpression.[Note:Suchexpressionsmaybeusedasarraybounds(8.3.4,5.3.4),asbit-fieldlengths(9.6),asenumeratorini

c++ - 为什么我们需要两个定义: integral constant expression and converted constant expression?

C++14中的§5.19/3定义了一个整型常量表达式和一个转换后的常量表达式:Anintegralconstantexpressionisanexpressionofintegralorunscopedenumerationtype,implicitlyconvertedtoaprvalue,wheretheconvertedexpressionisacoreconstantexpression.[Note:Suchexpressionsmaybeusedasarraybounds(8.3.4,5.3.4),asbit-fieldlengths(9.6),asenumeratorini

C++ 警告 : deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

我正在使用gnuplot在C++中绘制图形。该图正在按预期绘制,但在编译期间出现警告。警告是什么意思?warning:deprecatedconversionfromstringconstantto‘char*’[-Wwrite-strings]这是我正在使用的功能:voidplotgraph(doublexvals[],doubleyvals[],intNUM_POINTS){char*commandsForGnuplot[]={"settitle\"ProbabilityGraph\"","plot'data.temp'withlines"};FILE*temp=fopen("da

C++ 警告 : deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

我正在使用gnuplot在C++中绘制图形。该图正在按预期绘制,但在编译期间出现警告。警告是什么意思?warning:deprecatedconversionfromstringconstantto‘char*’[-Wwrite-strings]这是我正在使用的功能:voidplotgraph(doublexvals[],doubleyvals[],intNUM_POINTS){char*commandsForGnuplot[]={"settitle\"ProbabilityGraph\"","plot'data.temp'withlines"};FILE*temp=fopen("da

java - 是什么导致 switch 语句中生成的 R.id.xxx 值出现 "constant expression required"错误?

我们有一个多项目应用程序,我们正在迁移到gradle。构建会导致Java编译错误,例如:AFragment.java:159:constantexpressionrequiredcaseR.id.aBtn:我们已经确认错误中报告的常量在生成的R.java中。一个线索是错误只针对开关值。例如,使用findViewById(R.id.aBtn)没有错误。还要注意,常量来自主项目,而不是库项目之一。对于任何想要摆脱错误的人来说,laalto的建议都会解决它。他提供的链接,以及eclipse没有显示使用gradle构建时发生的错误的事实给了我另一个线索。eclipse生成的R.java将主要项

java - 是什么导致 switch 语句中生成的 R.id.xxx 值出现 "constant expression required"错误?

我们有一个多项目应用程序,我们正在迁移到gradle。构建会导致Java编译错误,例如:AFragment.java:159:constantexpressionrequiredcaseR.id.aBtn:我们已经确认错误中报告的常量在生成的R.java中。一个线索是错误只针对开关值。例如,使用findViewById(R.id.aBtn)没有错误。还要注意,常量来自主项目,而不是库项目之一。对于任何想要摆脱错误的人来说,laalto的建议都会解决它。他提供的链接,以及eclipse没有显示使用gradle构建时发生的错误的事实给了我另一个线索。eclipse生成的R.java将主要项

Java "constant string too long"编译错误。仅在使用 Ant 时发生,在使用 Eclipse 时不会发生

我在一个类中有几个非常长的字符串用于初始化用户信息。当我在Eclipse中编译时,我没有收到任何错误或警告,并且生成的.jar运行良好。最近,我决定创建一个ant构建文件来使用。每当我用ant编译同一个类时,都会出现“常量字符串太长”的编译错误。我尝试了多种方法来设置ant中的java编译器可执行文件,以确保我使用的版本与Eclipse中的完全相同。我宁愿弄清楚如何在Ant中获得与在Eclipse中相同的成功编译,而不是尝试重新编写代码以动态连接字符串。 最佳答案 有人试图向您发送消息:-)在您花时间摆弄编译器版本时,您可能已经从文

Java "constant string too long"编译错误。仅在使用 Ant 时发生,在使用 Eclipse 时不会发生

我在一个类中有几个非常长的字符串用于初始化用户信息。当我在Eclipse中编译时,我没有收到任何错误或警告,并且生成的.jar运行良好。最近,我决定创建一个ant构建文件来使用。每当我用ant编译同一个类时,都会出现“常量字符串太长”的编译错误。我尝试了多种方法来设置ant中的java编译器可执行文件,以确保我使用的版本与Eclipse中的完全相同。我宁愿弄清楚如何在Ant中获得与在Eclipse中相同的成功编译,而不是尝试重新编写代码以动态连接字符串。 最佳答案 有人试图向您发送消息:-)在您花时间摆弄编译器版本时,您可能已经从文