草庐IT

c++ - 是否有预处理器定义来区分 gcc 和 g++ 代码?

是否有在gcc和g++编译器中定义的预处理器宏,以便如果我想让我的C代码链接到C标准库或C++标准库?像这样的东西:一些文件.c#ifdef__CPP__#include#else#include我确定有,但快速的Google搜索并没有立即指向我,我确定有人会发布重复的问题,但无论如何,请指出正确的方向。 最佳答案 在c++中你可以#ifdef__cplusplus例如,如果c++代码您希望编译器将某些代码片段作为c代码来处理,您需要将该代码块放入#ifdef__cplusplusextern"C"{#endif#ifdef__cp

c++ - 在 c/c++ 中创建时间戳的可移植方式

我需要以yyyymmdd格式生成时间戳。基本上我想创建一个带有当前日期扩展名的文件名。(例如:log.20100817) 最佳答案 strftime#include#include#includeintmain(){chardate[9];time_tt=time(0);structtm*tm;tm=gmtime(&t);strftime(date,sizeof(date),"%Y%m%d",tm);printf("log.%s\n",date);returnEXIT_SUCCESS;}

c++ - #include <bits/stdc++.h> 与 visual studio 不编译

这个问题在这里已经有了答案:WhyshouldInot#include?(9个回答)关闭去年。社区在8个月前审查了是否重新打开此问题,然后将其关闭:原始关闭原因未解决我最近看到#include包括每个标准库和STL包含文件。当我尝试使用visualstudio2013编译以下代码段时,它给出了errorC1083:Cannotopenincludefile:'bits/stdc++.h':Nosuchfileordirectory.但它与代码块一起工作得很好。有什么办法可以避免这个错误吗?#includeusingnamespacestd;intmain(){}我在一些帖子中看到“头文

c++ - 字段类型不完整

我得到错误的“字段有不完整的类型”,但也不知道为什么。有人能帮忙吗?谢谢!g++-pipe-W-Wall-fopenmp-ggdb3-DDEBUG-fno-omit-frame-pointer-c-otest.o../../src/test.ccInfileincludedfrom../../src/test.cc:50:../../src/feature_haar.h:14:error:field‘_count’hasincompletetype抄袭#include"feature_count.h"#include"feature_random_counts.h"#include"f

c++ - 为什么#include 这个文件不止一次出现链接器错误?

这个问题与其说是一个“如何解决”的问题,不如说是一个关于为什么行不通的问题?在C++中,我可以通过几种方式定义我想在多个文件中使用的一堆变量。我可以这样做:intsuperGlobal;#include"filethatUsesSuperglobal1.h"intmain(){//go.}只有当“filethatUsesSuperglobal1.h”在header中有完整的实现并且没有附加的.cpp文件时,这种方式才有效。另一种方式(“更正确的更正”方式)是使用extern:外部变量.h#ifndefexternvardef_h#defineexternvardef_h//Define

C++ 头文件和实现文件 : what to include?

有一个.h文件和一个.cpp文件,名称相同但扩展名不同。如果我想使用.cpp文件中的内容,我应该包含.h文件还是.cpp文件? 最佳答案 简单的答案是您几乎总是希望包含.h文件并编译.cpp文件。CPP文件(通常)是真实代码,而H文件(通常)是前向声明。较长的答案是您可以包含其中任何一个,它可能对您有用,但两者的结果会略有不同。“include”所做的基本上是将文件复制/粘贴到该行。扩展名是什么并不重要,它将以相同的方式包含文件的内容。但是按照惯例,C++代码通常是这样写的:SomeClass.cpp-#include"SomeCl

C++,删除类头中的#include<vector> 或#include<string>

如果可能的话,我想从我的类头文件中删除和的包含。string和vector都是在头文件中声明的函数的返回类型。我希望我能做这样的事情:namespacestd{templateclassvector;}然后,在header中声明vector并将其包含在源文件中。是否有涵盖必须包含在header中的情况以及可以将包含内容拉入源文件的情况的引用? 最佳答案 你不能安全地转发声明STL模板,至少如果你想以可移植和安全的方式进行。该标准清楚地说明了每个STL元素的最低要求,但为可能添加额外模板参数的实现扩展留出了空间,只要它们具有默认值。也

C++ Windows 命令提示符 C1083 "Cannot open include file: ' Magick++.h' No such file or directory"

自从我取得任何进展、搜索文档和链接以来已经过去了4个多小时,坦率地说,我没有想法。就这样吧。背景我正在命令提示符下编译C++程序我是命令提示符的新手,也是c++的新手我正在用Notepad++(不是VS)编写这个程序,但安装了VS,所以我可以编译我正在尝试通过Magick++使用ImageMagick,Magick++是它的C++API包装器。主程序目录C:/ProgramFiles(x86)/CameraSoftware/myCameraProgram.cppMagick++目录C:/ProgramFiles(x86)/ImageSoftware/Magick++/lib/Magic

c++ - 创建用户定义的转换

我正在尝试为米和公里创建单位。然后我想对它们进行求和并相应地进行转换。我知道boost::units库已经有SI系统,但我想从头开始创建,因为那时我需要为我的项目创建我自己的系统(所以我这样做是为了学习)。我的目的是声明一个可以使用单位修改的“长度”变量:例如我想写LengthxLength1=5350*Meters+2Kilometers;为此,我创建了length.h文件,其中包含米和公里的定义,最后我声明了这两个单位之间的转换:#ifndefLENGTH_H_#defineLENGTH_H_#include#include#include#include#includestruc

c++ - clang 在解析 AST 时获取包含文件

我想扫描clang的AST。我开始使用一个教程中提供的一些示例代码。我当前的代码是#include#include"llvm/Support/raw_ostream.h"#include"llvm/Support/Host.h"#include"llvm/Support/Casting.h"#include"clang/Basic/DiagnosticOptions.h"#include"clang/Frontend/TextDiagnosticPrinter.h"#include"clang/Basic/LangOptions.h"#include"clang/Basic/FileS