草庐IT

INT_VOLUME_MAX

全部标签

c++ - 对`i2c_smbus_read_word_data(int, unsigned char) 的 undefined reference

更新到Ubuntu18.04后,我无法编译我的Qt应用程序。出现以下错误:undefinedreferenceto`i2c_smbus_read_word_data(int,unsignedchar)据我了解,i2c_smbus_read_word_data现在不在linux/i2c-dev.h中定义,而是在动态库/usr/lib/x86_64-linux-gnu/libi2c.so中定义。我尝试动态链接:-li2c静态的:/usr/lib/x86_64-linux-gnu/libi2c.a但是还是有编译错误更新:已安装libi2c-dev、libi2c0和i2c-tools包。

c++ - 为什么我可以将一个大于 127 的 int 传递给一个 char 数组,而不是直接传递?

我知道char值不能表示为176,但一些字节系统是无符号的(0-255),而其他字节系统是有符号的(-128到127)。在这种情况下,我使用的是无符号的,所以我只想创建一个简单的字节消息数组,但是当我尝试放置一个高于127的值时出现此错误,但是如果我先将其声明为int,它会避免该错误.有人可以详细解释为什么这有效吗?方法1:不起作用。我收到此错误:缩小从“int”到“char”的“176”的转换charm1[3]{176,118,1};方法2:这个可行intb1=176;charm1[3]{b1,118,1}; 最佳答案 当使用大括

c++ - 与size_t比较,返回int?

我正在编写“如何像计算机科学家一样用C++思考”中的一些代码示例,而这个示例是关于处理扑克牌类型的对象和牌组的。我正面临这种情况:intCard::find(conststd::vector&deck)const{size_tdeckSize=deck.size();for(size_ti=0;i我不能像文中那样在VisualStudio2010中的C++中的vector上使用“.length()”,而是不得不使用.size(),它返回(我相信)std::size_type。我想我可以使用size_t并摆脱它以避免在不同体系结构上出现问题,正如我一直在阅读的那样,但我想知道我是否返回i

c++ - 当 vector<int> 长度增加时,如何设置断点?

我有一个空的vector,某处有东西填充它,但我找不到它。我想设置一个内存断点,这样当push_back发生时程序就会中断。我使用的是VisualStudio2008,问题是vector没有在监window口中显示其内部成员(它似乎具有自定义格式)。它看起来像这样:myVector[0]()std::vector>指示尺寸0。有什么提示吗? 最佳答案 此答案适用于VS2010-其他版本的细节可能有所不同。由于调试器使用数据可视化工具(或任何它的名字)来显示std::vector的状态,你必须查看header以确定类的实际成员的名称以

c++ - 模板 - 必要时使用 int、short 或 float 的类

我想编写一个类来管理欧几里德vector并使用短整型、整型、长整型或浮点型存储其初始点。我想创建一个这样的模板:templateclassEVector{private:unitx;unity;public:EVector();setX();setY();};因此,用户创建了一个选择合适原始类型的EVector。但是如何实现不同类之间的操作,例如EVectora;EVectorb;EVectorc;c=a+b;operator=将复制坐标,operator+添加它们。 最佳答案 此外,您可以使用我的promote实现:templat

c++ - 所以,我们有 int32_t、int16_t、uint64_t 等。但是 atoi32、atoi16、atoui64 等在哪里……?

我想将表示数字的字符串输入转换为相应的数字类型。问题是我有严格的类型要求,例如,我不能接受x>=2^15其中int16_t预期值(有符号)。如果不从头编写所有转换函数,我该如何处理这种情况?附言请不要建议boost::lexical_cast-我已经在使用它了。我正在谈论的功能将取代lexical_cast的默认实现通过特定模板特化的模板,即:templateinlineint32_tlexical_cast(constchar*const&arg){}templateinlineint16_tlexical_cast(constchar*const&arg){}...理想情况下,最好

c++ - 使用非固定整数(int、long)而不是固定大小的整数(int64_t、int32_t)有什么好处吗?

也许是性能?我觉得使用非固定整数只会让程序更复杂,并且在移植到另一个架构时更容易失败。 最佳答案 std::intN_t提供onlyiftheimplementationcandirectlysupportthem.因此,使用它们的移植代码可能会失败。我更喜欢std::intfastN_t用于一般用途,因为它们的限制较少,应该和int一样快或更快.此外,大多数C++代码使用int无处不在,所以你可能会在通过std::int32_t时遇到晋升怪事进入接受int的函数,特别是如果sizeof(int)只有16位。

c++ - 0、int() 和 int{} 之间有什么区别?

作为int()和int{}是值等于0的常量表达式,我认为它们是等效的并且可以互换,因此编译器必须平等对待它们。例如,inta[0];//error:zero-sizedarraynotallowedinISOC++intb[int()];//error:zero-sizedarraynotallowedinISOC++intc[int{}];//error:zero-sizedarraynotallowedinISOC++但似乎在某些极端情况下它们不可互换。初始化指针时:int*p=0;//okint*q=int();//error-byclangonlyint*r=int{};//e

java - 我应该如何在 jna 中按值从 Java 传递和返回 unsigned int 到 C/C++

我的C++函数extern"C"{DECLSPECunsignedintSTDCALLdoNumberThing(unsignedintsome_number);}我的Java界面packagecom.myplace.nativeapi;importcom.sun.jna.Library;importcom.sun.jna.Memory;importcom.sun.jna.Pointer;interfaceNativeAPIextendsLibrary{intdoNumberThing(intsome_number);}显然,在处理仅对一种或另一种不匹配类型(int与unsignedi

c++ - 对 int 类型和无符号整数的值应用模运算

例如下面的代码inta=-7777;intb=10;cout结果是:-7-7-7但是如果我把b的类型改成unsignedint,它有不同的值;inta=-7777;unsignedintb=10;cout结果是99-7任何人都可以建议它在这里是如何工作的吗?差异是怎么来的?顺便说一句:我在最新版本的Xcode中使用C++。 最佳答案 cout在上面的行中,a是converted由于通常的算术转换,转换为无符号类型(因为您将b声明为unsigned)。当我在我的机器上将-7777的二进制表示解释为正值时,它产生4294959519,这