草庐IT

int_void

全部标签

c++ - 使用 (void)someInt 的原因;在代码中

我正在阅读我正在使用的库的一些代码,我发现在一个函数中使用了它:voidsomeFunction(Foo&a,intindex,intpartId){(void)partId;(void)index;//morecode}谁知道为什么?谢谢。 最佳答案 避免编译器警告/错误指示变量未在函数体中使用。这是一种风格选择,另一种实现相同效果的方法是不给变量命名:voidsomeFunction(Foo&a,int/*index*/,int/*partId*/) 关于c++-使用(void)so

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++ - 哪种转换是从 Type* 到 void*?

在C++中,对于任何数据类型,我都可以执行以下操作:Type*typedPointer=obtain();void*voidPointer=typedPointer;当我将Type*分配给void*时执行哪个转换?这和Type*typedPointer=obtain();void*voidPointer=reinterpret_cast(typedPointer);还是其他Actor? 最佳答案 这是一个标准的指针转换。由于它是标准转换,因此不需要任何显式转换。如果您想使用显式转换重现该转换的行为,则应使用static_cast,而

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++ - GCC 选项 : warning on non-void functions without a return statement

如果存在具有非空返回值但在其定义中不包含return语句的函数,是否有生成错误/警告的GCC/g++选项?例如:intadd(inta,intb){a+b;} 最佳答案 -Wreturn-type.它由-Wall(您应该始终与-Werror-Wextra一起运行)启用。 关于c++-GCC选项:warningonnon-voidfunctionswithoutareturnstatement,我们在StackOverflow上找到一个类似的问题: https: