首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >C中数据类型的大小

C中数据类型的大小
EN

Stack Overflow用户
提问于 2009-11-06 10:15:12
回答 6查看 2.8K关注 0票数 4

数据类型的大小依赖于硬件体系结构还是依赖于编译器?

我想知道决定数据类型大小的真正影响因素是什么?

EN

回答 6

Stack Overflow用户

发布于 2009-11-06 12:26:39

编译器(更确切地说是“实现”)可以自由选择大小,但要遵守C标准中的限制(例如int必须至少为16位)。编译器可以选择遵守其他标准,比如POSIX,这可以添加更多的约束。例如,我认为POSIX说所有的数据指针都是相同的大小,而C标准完全适用于sizeof(int*) != sizeof(char*)

在实践中,编译器-编写者的决策强烈地受到体系结构的影响,因为除非有强有力的理由,否则他们希望实现是有效的和可互操作的。处理器制造商或OS供应商通常发布一种称为“ABI”的东西,它告诉您(在其他事情中)类型有多大以及它们是如何存储在内存中的。编译器的体系结构永远不会遵循标准ABI,而且CPU通常有多个公共ABI,但是要从一个编译器的代码直接调用到另一个编译器的代码,两个编译器必须使用相同的ABI。因此,如果您的C编译器不使用Windows上的Windows ABI,那么您将需要额外的包装器来调用Windows dll。如果您的编译器支持多个平台,那么它很可能在不同的平台上使用不同的ABI。

您经常会看到缩写用来表示使用了几个ABI中的哪一个。例如,当64位平台上的编译器说它是LP64时,这意味着long和指针是64位的,省略的是int是32位的。如果显示为ILP64,则意味着int也是64位的。

最后,这更像是一个编译器-编写者从一个合理的选项菜单中进行选择的情况,而不是随意地从空中挑选数字。但是实现总是可以自由地做它喜欢做的任何事情。如果您想要为x86编写一个编译器来模拟具有9位字节和3字节字的机器,那么C标准允许这样做。但就操作系统而言,你只能靠自己了。

票数 3
EN

Stack Overflow用户

发布于 2009-11-06 10:27:30

大小最终由编译器决定。例如,Java有一组固定的大小(8,16,32,64),而C为其各种类型提供的大小集在一定程度上取决于它运行的硬件;即编译器做出选择,但(除了像Java这样数据类型明确独立于底层硬件的情况外)受到硬件提供的强烈影响。

票数 1
EN

Stack Overflow用户

发布于 2009-11-06 10:31:55

不同数据类型的大小是编译器的,它的配置依赖于(不同的编译器,或者不同的开关到同一个编译器,在某些机器上可以有不同的大小)。

通常编译器与安装它的硬件相匹配...所以你可以说类型的大小也依赖于硬件。让编译器在48位的机器上发出16位指针会适得其反。

但是可以使用计算机上的编译器来创建一个程序,该程序将在具有不同大小的不同计算机上运行。

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

https://stackoverflow.com/questions/1686655

复制
相关文章
HTML|利用CSS美化一个html表格
我们通常做一个表格的时候,会发现表格是左上对齐的,且表格看起来非常单调,整个页面也很简洁。我们以为表格都应该是这个样子的吗?其实不然,表格也可以在网页中体现得很有层次感、画面感。比如在表格大小,文本字体、颜色背景上都可以利用CSS来美化。
算法与编程之美
2020/02/13
5.2K0
HTML|利用CSS美化一个html表格
好看的table css样式_html漂亮表格效果
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/08
4.6K0
03.HTML头部/CSS/图像/表格/列表
HTML <head> 查看在线实例 <title> - 定义了HTML文档的标题 使用 <title> 标签定义HTML文档的标题 <base> - 定义了所有链接的URL 使用 <base> 定义
Java帮帮
2018/03/15
19.5K0
03.HTML头部/CSS/图像/表格/列表
html+css学习笔记012-表格
老板说:他们都没什么经验,做不出来的你就做出来给他们看看,让他们知道你的能力有多强大,他们就服你了
Mr. 柳上原
2018/09/05
1.3K0
html表格
<table>、<tr>和<td>是HTML表格最基本的3个标签,其他标题标签<caption>、表头单元格<th>可以没有,但是这3者必须要有。
Qwe7
2022/05/16
4.1K0
Normalize.css ——CSS Reset的友好替代品
最近才第一次接触这个Normalize.css,之前Jeff 都是采用CSS Reset的,但如今发现现在流行这个Normalize.css 了。自己也查阅了不少资料去了解,现在权当是笔记放在这里吧。 Normalize.css 简介 官方网站:http://necolas.github.io/normalize.css/ 浏览器支持情况:Chrome, Firefox, Opera, Safari 6+, IE 8+ Normalize.css 是一个可以定制的CSS文件,它让不同的浏览器在渲染网页元素的
Jeff
2018/01/19
2.3K0
Normalize.css ——CSS Reset的友好替代品
Html 表格
看了上图百度的搜索页面,有木有心动一下,别慌你也能够的。这就是我们今天要讲的表单。
全栈程序员站长
2022/07/05
3.2K0
Html 表格
HTML表格
            4.cellspacing:外边距(单元格和单元格之间的距离)
十月梦想
2018/08/29
4.1K0
CSS——表格
表格属性允许指定表格的布局算法(table-layout属性),如固定布局、自动布局,以及边框的样式等。
Html5知典
2019/11/26
1.2K0
七 .Html的表格
1.表格 owspan 纵向的合并单元格 colspan 横向的合并单元格 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Docume
小海怪的互联网
2020/10/26
2K0
HTML表格代码_html如何制作表格代码
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169633.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
14.8K0
Exa - “Rust”中的“ls Command”的现代替代品
Exa是Unix类操作系统上流行的ls命令的轻量级,快速和现代化的替代品。 它是用Rust编程语言编写的,并附带了传统ls命令中不可用的几个附加功能。 重要的是,它的选项与ls命令类似,但并不完全一样,我们将在后面看到。
子润先生
2021/06/15
1.6K0
html代码大全表格_html表格代码怎么写
在做前台html中我们经常用到一些表格,苦逼的后台程序猿大多都简简单单的写一些标签,下面分享一下只用h5就能写出一些精美的form
全栈程序员站长
2022/09/22
7.8K0
html表格菜鸟教程_exls表格
<table> 标签定义 HTML 表格。简单的 HTML 表格由 table 元素以及一个或多个 <tr>、<th> 或 <td> 元素组成表格结构;其中: <tr> 元素定义表格行,<th> 元素定义表头,<td> 元素定义表格单元。 为了让表格更美观,我们会用到:border,colspan,rowspan,align,bgcolor 等来美化表格,具体在本文都有讲解;
全栈程序员站长
2022/09/22
8.1K0
html表格菜鸟教程_exls表格
HTML转表格
Sub ht(Html, Range) s1 = Split(Html, "<tr") rn = UBound(s1) cn = UBound(Split(s1(2), "<td>")) ReDim arr(rn - 1, cn - 1) For ri = 1 To rn s2 = Split(s1(ri), "<td") If UBound(s2) = 0 Then s2 = Split(s1(ri), "<th") For ci = 1 To cn arr(ri - 1, ci - 1
林万程
2018/06/21
5.3K0
html怎么使表格居中,html怎么使表格居中[通俗易懂]
margin 属性可以单独改变元素(元素可以是表格或者DIV)的上,下,左,右边距。也可以一次改变所有的属性。
全栈程序员站长
2022/11/04
11.9K0
html怎么使表格居中,html怎么使表格居中[通俗易懂]
css表格属性
在了解什么叫“表格边框合并”之前,我们先来看一下在默认情况下表格加入边框是怎样的一个效果。
Qwe7
2022/04/15
9390
Dragonfly安装&配置 Redis和Memcached的现代替代品
Dragonfly是一个现代的内存数据存储,与Redis和Memcached API完全兼容。Dragonfly在多线程,无共享架构之上实现了新颖的算法和数据结构。因此,与 Redis 相比,Dragonfly 的性能达到了 x25,并且在单个实例上支持数百万 QPS。
半年前的自己
2022/06/03
10.8K0
Dragonfly安装&配置 Redis和Memcached的现代替代品
html的css代码_html通用css代码大全
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说html的css代码_html通用css代码大全,希望能够帮助大家进步!!!
Java架构师必看
2022/05/16
11.8K0
html中表格整体居中,html中怎么把表格居中
html中把表格居中的方法:首先创建一个HTML示例文件;然后使用table标签创建一个两行两列的表格;接着给table标签添加一个class属性;最后将margin属性设置为“0 auto”即可。
全栈程序员站长
2022/07/22
14.5K0
html中表格整体居中,html中怎么把表格居中

相似问题

cbDSMixer的现代替代品?

11

html css什么是现代线条?

55

框架的现代替代品?

31

表格html css

111

现代网络开发的cookie替代品?

25
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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