草庐IT

c++ - 在 CPP 文件中使用 make 文件字符串变量

我在make文件中使用以下代码从CPP文件访问变量VENDOR_NAME。EXTRA_DEFINE+=-DVENDOR_NAME=$(VENDOR_NAME)VENDOR_NAME包含一个字符串。在我的cpp文件中,当我尝试使用此变量时,出现如下错误。coutFeature1.cpp.bak.cpp:8:'Default_Vendor'未声明(首先使用此功能)Feature1.cpp.bak.cpp:8:(每个未声明的标识符只报告一次我猜这是因为我的字符串不包含双引号并且编译器正在将VENDOR_NAME的内容视为变量。如何在我的CPP文件中将此变量作为字符串获取,以便我可以像使用#d

c++ - int 转换——给我奇怪的数字

我是编程世界的新手,C++已经让我迷失了方向。我的程序中有这些行pennies=(amount-nickels*.05)/.01;amount是double,而nickels是int。当pennies是double时,程序返回正确的值,但每当pennies是一个int。为什么会这样? 最佳答案 发生这种情况是因为值被截断从而失去了小数精度。对于整数:inti;i=1.1//stores1inii=1.2//stores1inii=1.3//stores1inii=1.4//stores1inii=1.5//stores1inii=1

c++ - 缩小从 int 到 long unsigned int {} 的转换在 C++11 中格式错误

当我运行以下代码时-我收到警告“在C++11[-Wnarrowing]中,{}中从int到longunsignedint的缩小转换是错误的。我正在使用GNU4.8编译器。typedefstructTableEntry{unsignedlongvalue;constchar*label;}TableEntry;enumFunctionType{NORMAL=0,RANGE=1};TableEntryfunctionTypes[]={{NORMAL,"NORMAL"},{RANGE,"RANGE"}};我不明白为什么编译器将枚举视为整数?这是GCC4.8中的错误吗?有什么解决方法吗?任何帮

c++ - size_type 和 int 之间的区别

#include#includeusingnamespacestd;intmain(){vectorstudent_marks(20);for(vector::size_typei=0;i>student_marks[i];}return0;}我在某处读到,最好使用size_type代替int。它真的会对实现产生巨大影响吗?使用size_type有什么好处? 最佳答案 vector::size_type保证涵盖vector大小的所有可能值范围.一个int不是。请注意vector::size_type通常与std::size_t相同,

c++ - 如何在不使用 to_string 或 stoi 的情况下将 int 转换为 C++11 中的字符串?

我知道这听起来很愚蠢,但我在Windows7上使用MinGW32,并且“to_string未在此范围内声明。”It'sanactualGCCBug,我关注了theseinstructions他们没有工作。那么,如何在不使用to_string或stoi的情况下将int转换为C++11中的字符串?(另外,我启用了-std=c++11标志)。 最佳答案 这不是最快的方法,但您可以这样做:#include#include#includetemplatestd::stringstringulate(ValueTypev){std::ostri

c++ - 填充作为成员变量的 int 数组

我正在使用C++为游戏创建瓦片map。我的问题是,我想在Map构造函数中填充一个多维整数数组,但它无法正常工作。这是我在“Map.h”中的代码(不相关的代码已被删除)。classMap{private:intmapArray[15][20];};还有我来自Map.cpp的代码Map::Map(){mapArray={{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19},{20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39},{40,41,42,43,44,45,46,4

c++ - 我如何将一个 int 添加到一个字符串

我有一个字符串,我需要向它添加一个数字,即一个整数。喜欢:stringnumber1=("dfg");intnumber2=123;number1+=number2;这是我的代码:name=root_enter;//pullnamefromanotherstring.size_tsz;sz=name.size();//findthesizeofthestring.name.resize(sz+5,account);//addtheaccountnumber.cout这行得通……有点,但我只得到“*name*88888”而且……我不知道为什么。我只需要一种方法将int的值添加到字符串的末

c++ - 使用波浪号获取 int 的 MAX 值

我尝试使用代字号获取int的MAX值。但输出不是我所期望的。当我运行这个时:#include#includeintmain(){inta=0;a=~a;printf("\nMaxvalue:%d",-a);printf("\nMaxvalue:%d",INT_MAX);return0;}我得到输出:最大值:1最大值:2147483647我想,(例如)如果我在RAM中有0000(我知道第一位显示的是数字pozitiv或negativ)。在~0000=>1111和-(1111)=>0111之后,我会得到MAX值。 最佳答案 您有一个32

C++:如何将 int 转换为 unsigned long 而不更改任何位?

C++:如何将int转换为unsignedlong且不更改任何位?我想将值打包和解包到内存中。字长为64位。这个片段说明了问题:intv1=-2;//0xfeunsignedlongv2=(unsignedlong)v1;//0xfffe,Iwant0x00fe简单的解决方案是:unsignedlongv2=(unsignedint)v1;//0x00fe但是,这段代码位于目标类型是参数的模板中,所以我不得不求助于此:uint64target=mem[index]&mask;uint64v;if(value假设,例如,“value”的类型是一个int(16位)并且bits=16。目标是

c++ - 正确使用cpp中的定义宏替换函数的名称

我在Ubuntu上使用Eclipse+Qualcomm库(在cpp中)+AndroidSDK。我的应用程序运行良好。如果我更改qualcomm库中的一些代码,它会编译并正常工作。问题是:我已经更改了项目的名称,并且我必须更改cpp中的一些代码(函数的名称),如果我不这样做,我会得到一个Java.lang.UNSATISFIEDLINKERROR.那是因为所有函数的名称都是Android包,如下所示:Java_org_myproject_marker_MainActivity_onQCARInitializedNative(JNIEnv*,jobject)然后我定义一个这样的宏:#def