首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >第三方库中的不同数据类型长度

第三方库中的不同数据类型长度
EN

Stack Overflow用户
提问于 2016-08-01 11:45:55
回答 2查看 48关注 0票数 2

C和C++标准都没有指定某些数据类型的确切长度,只指定了它们的最小长度。

我有一个第三方库:someLib.lib (为我的平台编译的)和它对应的someLib.h。假设它包含以下函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int getNumber();
void setNumber(int number);

当我编译一个使用这个库的程序时,编译器会用someLib.h中定义的签名检查类型,所以只要我使用ints,一切都应该编译得很好。

但是,当我的编译器中的int比用于编译someLib.lib的编译器中的更长或更短时,会发生什么呢?在链接过程中会被检测到吗?它会导致运行时错误吗?在不知道someLib.lib是如何编译的情况下,我可以安全地使用它吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-01 11:49:15

您不应该得到编译器或链接器错误,只有在运行时未定义的行为。可能会崩溃,或者如果你幸运的话只是奇怪的结果。

票数 3
EN

Stack Overflow用户

发布于 2016-08-01 11:53:57

使用对底层系统或编译器有狭义假设的库可能会导致问题。

因此,如果您正在使用的库假定int是16位的,但是您在32位系统中使用它,那么在运行时就会出现问题。

好的实现库有#if宏来最小化这些问题,或者它们已经为不同的系统实现了各种.lib文件。他们甚至可以显式地使用intX_t (例如int32_t)整数,以使其更易于移植。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38698038

复制
相关文章
获取不同长度的UUID[通俗易懂]
在公司,有时候让处理一些命名规则时,要使用一个唯一标识,还是十六进制的,需要多少位看领导心情.
全栈程序员站长
2022/09/22
3.5K0
Java List 中存不同的数据类型
这个问题突然给问到了,我们都知道 Java 中的 List 中存的是对象,通常我们定义都会这样的定义:
HoneyMoose
2023/10/10
8060
Java List 中存不同的数据类型
MySQL | 不同的数据类型
数据定义语言:数据类型 数据类型:数字 类型 大小 说明 TINYINT 1字节 ^1 小整数 SMALLINT 2字节 普通整数 MEDIUMINT 3字节 普通整数 INT 4字节 较大整数 BIGINT 8字节 大整数 FLOAT 4字节 单精度浮点数 DOUBLE 8字节 双精度浮点数 DECIMAL ——– DECIMAL(10, 2) 1^ : (-2^7 --- +2^7-1) 不精确的浮点数 十进制的浮点数无法在计算机中用二进制精确表达 CREATE TABLE temp( id
Zkeq
2022/05/18
1.6K0
MySQL | 不同的数据类型
c语言数据类型长度
头文件 <limits.h>和<float.h>中说明了基础数据的长度。 float,double和long double的范围就是在IEEE 754标准中提及的典型数据。
用户4766018
2022/08/19
1.4K0
Linux不同共享库中同名函数的处理
在一个尚未成熟的行业中,一般行业标准是先于国家标准。这就导致了开发人员需要做很多兼容工作,再就是会用到很多其他厂商提供的库与头文件,面对不同版本的标准,一般会更新库与头文件。那么此时如果要兼容新库和旧库要做怎样的操作呢?
用户5908113
2020/09/28
3.1K0
Java 几个基本数据类型长度
比如说,你想知道 Float 的最大值,可以运行下面的代码 System.out.println(Float.MAX_VALUE); 程序上将会输出为:3.4028235E38
HoneyMoose
2023/09/05
9030
Java 几个基本数据类型长度
CDH6中的第三方库
在最近发布的CDH6版本中,Cloudera投入了大量的人力和物力用于升级所使用的第三方库。这次CDH的大版本更新可以让我们使用到一些较新的库。升级库的目的主要是可以避免一些安全漏洞,使用某些库的流行版本以及标准化CDH所使用的库。
Fayson
2018/11/08
1.8K0
数据库中varchar类型 最大长度是多少?[通俗易懂]
4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同。
全栈程序员站长
2022/08/03
11.3K0
数据库中varchar类型 最大长度是多少?[通俗易懂]
java中==、equals的不同AND在js中==、===的不同
       1.==操作符:首先,对于非基本数据类型的对象比较,相同内存中存储的变量的值是否相等,注意是相同内存地址的才可,并且数值相同(当然地址相同,值也一定相同)才会返回true.     但是,对于基本数据类型的比较(比如:int flot double等),值相同,"=="比较便会返回true.(这是编译的规则,当进行基本数据类型的比较时,会编译生成if_icmpne指令不会进行比较地址。而进行对象比较时,会生成if_icmpne指令,会比较地址。生成的指令都是不同的)。
洋仔聊编程
2019/01/15
4K0
pycharm中安装第三方库出现错误_pycharm常用第三方库
2、修复 .sudo apt install --fix-missing python3-pip 3、强制重装
全栈程序员站长
2022/09/25
1.1K0
pycharm中安装第三方库出现错误_pycharm常用第三方库
C#decimal数据类型——有效长度问题
C#decimal整数部分有效长度 通过累计数字做数据容纳量测试: 从1累加到一百万亿测试: //累计数据 //1++++++100=5050 //1+++++++100000000000000(一百万亿) //(n+1)*n/2  //C#处理数据长度,最长29位 decimal n = decimal.Parse("100000000000000");//一百万亿 decimal one=decimal.Parse("1"); decimal two=decimal.Parse("2");
红目香薰
2022/11/29
6950
C#decimal数据类型——有效长度问题
Angular中引入第三方JS库
最近写http://www.itoolshub.com/的时候用到了日期时间选择器,Angular本身material2只有日期选择器,也不知道为什么官方不提供日期时间选择器,也可能是Angular2以及如今的4有些年轻,很多库都不是很成熟,于是乎搜索到的解决方案就是借助第三方的库来使用一些优秀的组件.本文以https://github.com/sentsin/laydate组件为例.
屈定
2018/09/27
6.2K0
mysql中int长度的意义
mysql的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同。如果不同,分别是多大?
跑马溜溜的球
2020/12/07
3.9K0
mysql中int长度的意义
mysql中int长度的意义
疑问: mysql的字段,unsigned int(4), 和unsinged int(5), 能存储的数值范围是否相同。如果不同,分别是多大? 答: 无论是int(4), int(5), 存储的都是4字节无符号整数, 也就是0~2^32。。但是,当数字不足4位或5位时,前面会用0补齐。 MySQL支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。 该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。 显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定
joshua317
2018/04/09
4.2K0
JSP中获得list的长度
在jsp页面中不能通过${list.size}取列表长度,而是 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> list的长度是:${fn:length(list)}
用户2657851
2020/03/04
2.5K0
Android 中的长度单位详解
一、介绍一下 dp 和 sp。 dp 也就是 dip。这个和 sp 基本类似。如果设置表示长度、高度等属性时可以使用 dp 或 sp。但如果设置字体,需要使用 sp。 dp 是与密度无关,sp除了与密度无关外,还与 scale 无关。如果屏幕密度为160,这时 dp 和 sp 和 px 是一样的。 1dp=1sp=1px 二、介绍一下px 但如果使用 px 作单位,如果屏幕大小不变(假设还是3.2 寸),而屏幕密度变成了320。 那么原来 TextView 的宽度设成160px,在密度为320
再见孙悟空_
2023/02/10
5360
MySQL中索引的长度的限制
参考: http://dinglin.iteye.com/blog/1681332
保持热爱奔赴山海
2019/09/17
5.5K0
MySQL中的数据类型_js中的数据类型
整数类型一共有 5 种,包括 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT
全栈程序员站长
2022/11/05
6.7K0
MySQL中的数据类型_js中的数据类型
LeetCode 1930. 长度为 3 的不同回文子序列(计数)
子序列 是由原字符串删除其中部分字符(也可以不删除)且不改变剩余字符之间相对顺序形成的一个新字符串。
Michael阿明
2021/09/06
9620
mysql5.6 varchar长度不同的情况下group by的效率
varchar长度短的情况下,基于这个字段的group by效率更高。所以开发在设计表的时候要使该字段在满足业务需求的情况下尽可能的小。
全栈程序员站长
2022/07/08
4670

相似问题

如何在变量中插入不同长度的多个数据类型?

230

处理Haskell中第三方库中的数据类型的最佳实践?

12

SQL Server 2008比较两个不同的数据库表的列名、数据类型和长度

20

参数化查询中的数据类型/长度

11

不同列表中的长度

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文