int 的大小是否取决于编译器和/或处理器?

2024-01-12

整数的大小取决于编译器、操作系统和处理器吗?


这个问题的答案取决于我们愿意脱离实际考虑的程度。

最终,理论上,C 和 C++ 中的一切都取决于编译器,并且仅取决于编译器。硬件/操作系统根本不重要。编译器可以自由地实现硬件抽象层any厚度并模仿任何东西。没有什么可以阻止 C 或 C++ 实现实现int任何大小和任何表示形式的类型,只要它足够大以满足语言标准中指定的最低要求。这种抽象级别的实际例子很容易获得,例如基于“虚拟机”平台的编程语言,例如Java。

然而,C 和 C++ 的目的是高度高效的语言。为了实现最大效率,C 或 C++ 实现必须考虑源自底层硬件的某些考虑因素。因此,确保每种基本类型都基于硬件直接(或几乎直接)支持的某种表示形式是很有意义的。从这个意义上说,基本类型的大小确实取决于硬件。

换句话说,64 位硬件/操作系统平台的特定 C 或 C++ 实现完全可以自由实现int作为占用 128 位内存的 71 位 1 补码有符号整数类型,使用其他 57 位作为填充位,这些填充位始终需要存储编译器作者女朋友的生日。这个实现甚至还有一定的实用价值:它可以用来对C/C++程序的可移植性进行运行时测试。但该实现的实际用途就到此为止了。不要指望在“普通”C/C++ 编译器中看到类似的东西。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

int 的大小是否取决于编译器和/或处理器? 的相关文章

  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • JavaScript 对象有全序吗?

    标题基本概括了所有内容 JavaScript 在使用时是否保证对象的总顺序 lt gt lt and gt 运营商 我编写了一些代码只是为了检查某些对象的总排序 结果与全序一致 但这并不能证明任何事情 function thereIsTot
  • OnNavigedTo 重写方法中“base.OnNavieratedTo(e)”的用途是什么?

    当重写页面中的 OnNavigedTo 方法时 他们将这行代码放入其中 base OnNavigatedTo e 我一直在删除它 但没有注意到任何奇怪的行为 这行代码是做什么用的 我们应该离开它吗 或者这就像一个占位符 我很确定这不是特定于
  • 在 Swift 中检测 GMSPolyline 上的点击?

    我正在努力检测在我的 Google 地图上绘制的 GMSPolyline 上的点击 它与 GMSpolygones 配合得很好 但同样的方法似乎不适用于折线 我当前适用于多边形的方法是 if GMSGeometryContainsLocat
  • 带有 jvm 参数的可运行 jar

    我试图使用 Eclipse 创建一个可运行的 jar 文件 问题是我在 Eclipse 中添加到运行配置中的 vm 参数没有以任何方式保存 我知道我可以创建一个批处理文件来运行带有所需参数的 jar 但我希望我的用户只运行 jar 本身 因
  • 调整 ToolStripButton 的大小以适合完整的背景图像

    我的目标是完全适合 toolStripButton 和 toolStripDropDownButton 中的图像 如果按钮中的图像设置了图像属性 我无法完全适应按钮中的图像 因为边距 边框或按钮的某些东西 我不太清楚 所以我尝试使用 Bac
  • autopep8 似乎没有找到配置文件?

    根据 autopep8 的文档 此处 https github com hhatto autopep8 configuration https github com hhatto autopep8 configuration 如果我在 gi
  • Route.Component 没有任何构造或调用签名 - React Router with TypeScript

    路线是根据对象列表构建的 但打字稿突出显示了错误 属性 IRoute component React ReactNode JSX 元素类型 route component 没有任何构造或调用签名 在纯 JavaScript 中 一切都运行良
  • 如何存根 Typescript 接口/类型定义?

    我在 AngularJS 1 X 项目中使用 Typescript 我使用不同的 Javascript 库来实现不同的目的 为了对我的源进行单元测试 我想使用类型 接口 来存根一些依赖项 我不想使用 ANY 类型 也不想为每个接口方法编写一
  • 使用 Java 将变量值插入 SQL Server

    到目前为止 只有当我在executeUpdate 语句中声明值时 我才能将数据插入到我的SQL 表中 我想知道是否有一种方法可以将这些值作为变量传递 我将在执行方法中将其声明为参数 如下所示 public void updateSQL St
  • 如何更快、更智能地突出显示单词/术语?

    我有一些文字 p class drag Hello world Attack on Titan season two p 目前 如果用户想要用光标突出显示单词 术语 他们将逐个字母地单击并拖动 我希望这个过程能够更快一些 例如 如果用户开始
  • cron 作业不会写入文件

    我运行 Windows 2003 服务器并尝试每 15 分钟运行一次这样的代码 require db connect php conn db connect list online brukere flytt funksjon til se
  • 角度 js 工厂内的访问范围

    我正在使用离子框架 并且需要能够从代码中的多个位置调用弹出窗口 因此我想将其移至工厂中 弹出窗口使用输入字段 我想获取它的值 通常我会打电话 scope parentGate answer但因为它在工厂里 所以我无法访问范围 有什么想法如何
  • 使用 servlet 在 Java 中上传文件

    我正在使用 javazoom 进行上传 protected void processRequest HttpServletRequest request HttpServletResponse response throws Servlet
  • 拒绝可排序列表中无效的可排序项目

    我尝试了很多方法但没有成功 我有两个相互连接的可排序列表 问题是列表 A 可以接受其中的任何列表项 但是列表 B 只能接受具有 class abc 的项目 代码如下 ul li item A1 li li item A2 li li cla
  • mysql-connector不会导入到pycharm中的脚本中

    我已经使用 pip 成功安装了 mysql connector Installing collected packages mysql connector Running setup py install for mysql connect
  • 模块重新加载的 isinstance 行为

    给定以下两个 py 文件 aclass py class A object pass main py def importer klass Used to import classes from there python qalname i
  • 我可以从 bash 中的定界文档中读取行吗?

    这就是我正在尝试的 我想要的是最后一个echo循环说 一二三四测试1 它不起作用 read line即将空空如也 这里有什么微妙的地方吗 或者这根本行不通 array one two three echo array one two thr
  • Python:将utf-8字符串转换为字节字符串[重复]

    这个问题在这里已经有答案了 我有以下函数从字节序列中解析 utf 8 字符串 注意 length size 是表示 utf 8 字符串长度所需的字节数 def parse utf8 self bytes length size length
  • 如何在解析查询中包含超时?

    我的问题是关于 Android 的 parse com 查询 以及如果查询响应时间过长如何设置超时 例如 我有一个查询 我从 parse com 获取字符串列表 如果从 parse com 接收此查询需要很长时间 例如十秒 我希望用户能够取
  • int 的大小是否取决于编译器和/或处理器?

    整数的大小取决于编译器 操作系统和处理器吗 这个问题的答案取决于我们愿意脱离实际考虑的程度 最终 理论上 C 和 C 中的一切都取决于编译器 并且仅取决于编译器 硬件 操作系统根本不重要 编译器可以自由地实现硬件抽象层any厚度并模仿任何东