草庐IT

gcc-statement-expression

全部标签

c++ - gcc优化?漏洞?及其对项目的实际意义

我的问题分为三个部分问题一考虑下面的代码,#includeusingnamespacestd;intmain(intargc,char*argv[]){constintv=50;inti=0X7FFFFFFF;coutNospecificcompileroptimisationoptionsareusedortheO'sflagisused.Itisbasiccompilationcommandg++-otestmain.cppisusedtoformtheexecutable.看似非常简单的代码,在SUSE64位操作系统gcc4.1.2中有奇怪的行为。预期输出为“Numberisne

c++ - 使用 gcc 构建 C++ 的推荐 -W 标志

我正在寻找C++的推荐g++警告选项列表,但只能找到这个:RecommendedgccwarningoptionsforC和UsefulGCCflagsforC这些都是C语言特有的-Wall和-Wextra启用大部分但不是所有gcc可以生成的警告。那些选项没有启用哪些警告,尤其是在编译C++时,也应该打开? 最佳答案 -Wall-Wextra倾向于覆盖真正值得注意的那些。就个人而言,我也喜欢使用-ansi-pedantic进行编译,偶尔使用-Wshadow。此外,它可能有点嘈杂并且在100%的时间里都没有用,但-Weffc++有时也

c++ - 为什么这个程序是用 gcc 编译的,而不是用 g++ 编译的?

以下程序使用gcc编译但不使用g++,我只生成目标文件。这是prog.c:#include"prog.h"staticstructclnt_opstcp_nb_ops={4};这是prog.h:#ifndef_PROG_#define_PROG_#include#endif当我这样做时:gcc-cprog.c生成目标代码但是,g++-cprog.c给出错误:variable‘clnt_opstcp_nb_ops’hasinitializerbutincompletetype如何解决这个问题? 最佳答案 在clnt.h中看这个结构体的

c++ - 带有大括号的 char 数组的非静态成员初始化在 gcc 中给出了一个错误,而不是在 clang 中

考虑以下代码:#includeclassA{charname[40]={"Blank"};//notethebracesherepublic:constchar*getName(){returnname;}};intmain(){Aa;std::cout它在gcc(最新版本5.2.0)中给出错误:prog.cpp:5:28:error:invalidconversionfrom'constchar*'to'char'[-fpermissive]charname[40]={"Blank"};^但clang并非如此,它可以使用-std=c++11-pedantic-Wall完美编译。在这里

c++ - GCC 使用哪种排序算法?

来自cplusplus.comstd::sort复杂度定义:ComplexityApproximatelyN*logNcomparisonsonaverage(whereNislast-first).Intheworstcase,uptoN2,dependingonspecificsortingalgorithmusedbylibraryimplementation.我的应用在运行时有一些限制。所以我需要知道我是否应该实现自己的排序算法,否则只会浪费时间。它们是用gcc编译的,所以我需要知道gcc使用哪种排序算法。 最佳答案 GCC

c++ - 为什么 C++ 编译器 (gcc) 认为函数是 `virtual' 字段?

我的类中有以下方法定义:virtualCalc*Compile(Evaluator*evaluator,ResolvedFunCall*fun_call,string*error);出于某种原因,GCC提示说:错误:“编译”声明为“虚拟”字段为什么它会认为Compile是一个字段而不是方法?有什么想法吗? 最佳答案 当第一个参数对它没有意义时,我得到了那个错误。检查Evaluator是否已知为类型:structA{virtualvoid*b(nonsense*,string*);};=>error:'b'declaredasa'vi

c++ - GCC/进行构建时间优化

我们有使用gcc和make文件的项目。项目还包含一个大子项目(SDK)和许多使用该SDK和一些共享框架的相对较小的子项目。我们使用预编译的头文件,但这只会让重新编译变得更快。是否有任何已知的技术和工具可以帮助构建时优化?或者,也许您知道一些关于此主题或相关主题的文章/资源? 最佳答案 您可以从两个方面解决问题:重构代码以降低编译器看到的复杂性,或者加快编译器的执行速度。在不接触代码的情况下,您可以向其中添加更多的编译功能。使用ccache避免重新编译您已经编译过的文件,使用distcc将构建时间分配给更多机器。如果您在本地编译,请使

c# - 在 C# 的 VS 2012 Express for Desktop 中链接到 Windows API 的问题

我是Windows桌面编程的新手(或者至少从Windows3.0开始我就没做过)。我已经安装了VS2012ExpressforDesktop。我创建并运行了一个默认的基于表单的项目。现在我想使用以下行添加WindowsAPIperpinvoke.net:[DllImport("user32.dll")]staticexternboolSetLayeredWindowAttributes(IntPtrhwnd,uintcrKey,bytebAlpha,uintdwFlags);这段代码有两个错误:修饰符“extern”对此项目无效(在属性的右方括号中)预期的类、委托(delegate)、

遇到:internal/modules/cjs/loader.js:596 throw err; ^ Error: Cannot find module ‘express‘ 错误应该如何解决

遇到"internal/modules/cjs/loader.js:596throwerr;^Error:Cannotfindmodule'express'"错误通常表示在你的代码中无法找到所需的express模块。以下是一些可能的解决方法:确保express模块已经正确安装:在终端或命令行中,进入你的项目目录,运行npminstallexpress命令来安装express模块。确保你的项目的package.json文件中包含了express的依赖项,并且安装过程没有出现错误。检查模块导入的语法和路径:在你的代码中,确保你使用了正确的导入语法,并且指定了正确的express模块的路径。例如,使

windows - 在 Visual Studio 2010 Express 中创建 ".rc"文件

我正在尝试学习游戏编程。我在WindowsVista上使用MicrosoftVisualStudio2010Express。我想知道如何创建资源文件(.rc)。微软网站提供了一些关于创建一个相当模糊的说明。http://msdn.microsoft.com/en-us/library/sxdy04be.aspx.如果我转到我的解决方案资源管理器,右键单击并选择添加新项,IDE不会提供.rc文件作为选项之一。它只给我一个.cpp、.h和windows窗体作为选项。我不知道该怎么办。我只是想不通我在哪里搞砸了。如果有人能指出正确的方向,我将不胜感激。非常感谢圣诞快乐!