草庐IT

C++标准

全部标签

c++ - 如何更新项目中的所有 C/C++ 标识符名称

在经常遇到不要在C/C++标识符中使用前导和双下划线的建议后,我决定一劳永逸地修复所有源代码。我现在需要做的是将_Identifier转换为Identifier_。我应该使用专门的工具来完成正则表达式的任务吗?在后一种情况下,匹配C/C++标识符的模式是什么? 最佳答案 虽然我是经常指出带有前导下划线的名称可能被保留的人之一,但我强烈建议您不要这样做,除非您遇到由名称引起的问题。进行此全局更改将使您的版本控制系统的用处降低,否则会导致各种虚假差异。此外,还有可能创建重复的名称。此外,还有许多完全有效的下划线前缀名称。人们会立即想到_

c++ - 在游戏编程中,导致性能消耗的特定 C++ 或 STL 功能是什么?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭12年前。我的问题主要是关于STL而不是C++的其余部分,可以比较(我猜)与C一样快,只要类不是在每个角落都使用。STL是游戏和OGRE3D等引擎的标准,但我想知道如果STL的功能很好用,问题是虽然我真的不知道它们是如何工作的,但我应该首先知道哪些功能会导致严重的问题在使用它们之前先检查pig。我很高兴开始那所游戏编程学校,显然我不可能不使用这些高级功能。

c++ - 如何检查文件是否为常规文件?

如果文件是常规文件(而不是目录、管道等),我如何在C++中检查?我需要一个函数isFile()。DIR*dp;structdirent*dirp;while((dirp=readdir(dp))!=NULL){if(isFile(dirp)){cout我试过将dirp->d_type与(unsignedchar)0x8进行比较,但它似乎无法通过不同的系统移植。 最佳答案 您可以使用可移植boost::filesystem(直到最近在C++17中引入std::filesystem,标准C++库才能做到这一点):#include#inc

c++ - C++ 中 ## 运算符的用途是什么,它叫什么?

我查看了DirectX2009年3月SDK附带的DXUTCore项目,注意到他们没有制作普通的访问器方法,而是使用宏来创建通用访问器,类似于以下内容:#defineGET_ACCESSOR(x,y)inlinexGet##y(){DXUTLockl;returnm_state.m_##y;};...GET_ACCESSOR(WCHAR*,WindowTitle);##运算符似乎只是将第二个参数的文本插入到宏中,以创建一个使用该文本对变量进行操作的函数。这是C++中的标准(即不是Microsoft特定的)吗?它的使用被认为是好的做法吗?而且,那个运算符叫什么?

c++ - 如何将标准 IP 地址格式字符串转换为十六进制和长?

有谁知道如何从标准IP地址格式字符串(“xxx.xxx.xxx.xxx”)中获取十进制或十六进制的IP地址?我尝试使用inet_addr()函数但没有得到正确的结果。我在“84.52.184.224”上测试过函数返回的3770168404不正确(正确的结果是1412741344)。谢谢! 最佳答案 您刚刚得到的字节与您预期的相反-它们在networkbyteorder中3770168404=0xE0B83454networkbyteorder||\/\/\/\//\/\/\/\||1412741344=0x5434B8E0machi

c++ - 为什么我们不能在 C 或 C++ 代码中使用直接寻址?

当我连续多次编译和执行这段代码时,它报告cc的地址为0x0012FF5C。但是当我尝试使用foo中对printf的第二次调用打印出该地址处的字符串时,它打印出垃圾而不是打印出“Hello”?为什么这样??当我知道地址位于应用程序的地址空间内时(至少直到我不重新启动我的PC,或启动其他需要大量空间的应用程序,这会导致我的申请被调出)??voidfoo(char*cc[]){printf("%x\n",cc);printf("%s\n",(char*)(0x0012FF5C));}intmain(){char*c[]={"Hello","World"};foo(c);}

c++ - 哪个是最好的、标准的(希望是免费的)C++ 编译器?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。向stackoverflow.com致敬!!所以...我是一个C++新手,目前正在学习数据结构这门类(class),我想向大家请教一些东西:自从我开始学习系统工程以来,我一直在为我的所有编程项目使用最新版本的Dev-C++。到目前为止,它已经很好地完成了它的工作,但是它有一个致命的缺陷......试图调试你的代码只是......非常痛苦!每次激活Debug

c++ - C/C++ 宏,用于在不使用三元运算符的情况下查找两个数的最大值

我遇到了一个面试问题,内容如下:“在不使用标准库或三元运算符的情况下编写一个简单的C/C++宏来查找两个数中的最大值”。我需要你的帮助来解决这个问题。我知道这很简单,但我找不到。所以,把它张贴在这里。#include#definemax(x,y)/*LOGICHERE*/usingnamespacestd;voidmain(){inta=98453;intb=66394;cout 最佳答案 使用bool运算得到0或1,然后将它们相加:#definemax(x,y)(((int)((x)

c++ - C 程序,打印其可执行文件名

假设源代码文件名为test.cpp。编译时,它会生成test.exe文件。当我执行它时,它应该识别它的文件名test.exe并打印它。我可以使用以下代码获取当前目录中存在的所有文件和目录的列表:DIR*directory;structdirent*direct;direct=readdir(directory);但是,我如何识别关联的文件名,在本例中为"test.exe"? 最佳答案 在您的main函数中,argv[0]是来自命令行的可执行文件的名称#includeintmain(intargc,char**argv){printf

c++ - 有哪些 C++ 标准库使用最佳实践?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我正在学习C++,我正在阅读的书(C++编程语言)说不要重新发明轮子,要依赖标准库。在C语言中,我经常最终创建一个链表,并一遍又一遍地迭代链表(也许我做错了不确定),所以C++中可用的容器、字符串和算法的想法真的很吸引我.然而,我在网上读了一些书,并从我的friend和同事那里听到了一些对STL的批评,所以我想我也许可以在这里采纳一些意见。使用STL的一