C 中文字数值的类型选择

2024-06-05

我想知道这一点:当我尝试将整数值分配给int变量(16 位编译器,整数 2 个字节)让我们说:

int a;

a=40000;

无法用将被截断的类型范围来表示。但我看到的是结果值a是 -25000(或某个接近的数字)的位模式,这意味着编译器为十进制 40000 选择的二进制表示形式是无符号整数表示形式。这就提出了我的问题:编译器如何选择这个文字表达式的类型?

我猜它使用能够处理所需存储空间较少的值的类型。


C89 和 C99 之间的行为有所不同。

在 C89 中,十进制整数文字采用可以表示的第一种类型:

int, long, unsigned long

在 C99 中,十进制整数文字采用可以表示的第一种类型:

int, long, long long

对于您的特定代码片段来说,这没有什么区别,因为 40000 保证适合 long,但 C89 和 C99 文字之间有一些显着差异。

其中一些后果描述如下:

http://www.hardtoc.com/archives/119 http://www.hardtoc.com/archives/119

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

C 中文字数值的类型选择 的相关文章

  • Taglib:性能和崩溃问题

    我在 Qt 应用程序中使用 taglib 库 1 7 2 从音乐文件夹中读取 mp3 文件的一些元数据 问题是我发现它非常慢 例如 这是代码 QString path C Music QDir d path QStringList file
  • 如何调试Roslyn编译生成的dll?

    我正在使用 Roslyn CSharpCompilation 为我的插件生成 dll 文件 文件具有 OptimizationLevel Debug 并生成 pdb 文件 接下来 我使用 Assembly Load 将这些文件加载 到我的程
  • 根据当前文化调用不同(本地化)视图

    我在用着LocalizationAttribute它实现了ActionFilterAttribute本地化视图 我简单地说 Localize 在控制器上 我使用 LocalizeStrings resx 文件根据当前线程上的语言进行应用 一
  • HTML 文档

    有没有一个工具可以从 VS2010 生成的 XML 文档文件生成 HTML 页面 我在谷歌上搜索了这样的工具 但没有找到 我下载并安装了SandCastle 但我不明白如何使用它 尝试使用Sandcastle 帮助文件生成器 http sh
  • 带方括号的 Uri.EscapeUriString

    这是一个奇怪的问题 但让我们看看它会得到什么样的回应 如果我编写一个控制台应用程序 VS 2013 NET 4 5 1 并执行这行代码 Uri EscapeUriString 我明白了 但是 如果我执行同样的事情 嗯 从技术上来说Uri E
  • 在子目录中构建共享库

    我正在尝试构建一个使用一些 C 代码的 R 包 我有一个编译为可执行文件的 C 库 可以从命令行调用 有一个与之关联的 Makefile 我正在尝试获取信息here http cran r project org doc manuals R
  • 使用索引避免迭代器失效,维护干净的接口

    我创建了一个MemoryManager
  • 用 C# 中的字典中的值替换字符串中的单词

    我有一个简单的dictionary像这样 var fruitDictionary new Dictionary
  • 多态性中基类缺少虚拟析构函数 = 资源泄漏?

    我们知道 如果要多态地使用基类 则需要将基类的析构函数指定为 virtual 否则程序中可能会出现资源泄漏 因为只会调用基类析构函数 而不会调用派生对象析构函数 我们还知道构造函数 析构函数纯粹是初始化 未初始化构造 而operator n
  • 如果 .txt 文件不存在,则创建一个,如果存在则追加新行

    我想创建一个 txt 文件并写入它 如果该文件已经存在 我只想添加更多行 string path E AppServ Example txt if File Exists path File Create path TextWriter t
  • UWP - 绑定枚举差异

    我遇到了一个非常有趣的问题 假设 UWP 应用中有以下 XAML 页面内容
  • 如何在 C++ 中初始化嵌套类的构造函数

    我在初始化嵌套类构造函数时遇到问题 这是我的代码 include
  • 内存不足异常

    我正在使用 C 和 asp net 开发一个网络应用程序 我一直收到内存不足的异常 该应用程序的作用是从数据源读取一堆记录 产品 可能是数百 数千 通过向导中的设置处理这些记录 然后使用处理的产品信息更新不同的数据源 虽然有多个 DB 类
  • 除法时的小数舍入误差 (C#)

    我基本上有四个数字 比如 100 200 300 400 我需要计算概率为 100 100 200 300 400 200 100 200 300 400 等等在 当我使用小数数据类型来存储这些概率时 由于舍入问题 它们不会达到 1 在不使
  • 没有类型的 IEnumerable 属性

    我正在尝试创建一个类似于来自 MSDN 的官方 DataGrid ItemsSource 的属性 public IEnumerable ItemsSource get set 这提供了对任何派生类中任何类型的支持 有了这个 我可以设置类似的
  • Subsonic 3 ActiveRecord 嵌套选择导致 NotIn 错误?

    我有以下 Subsonic 3 0 查询 其中包含嵌套的 NotIn 查询 public List
  • 在 C# 中为 ListBox 分配数据源时,如何从 ListBox 中删除所选项目?

    在 C 中为 ListBox 分配数据源时 如何从 ListBox 中删除所选项目 尝试删除时出现错误 设置 DataSource 属性后 无法修改项目集合 但是当我尝试从数据源 数据表 中删除项目时 它会抛出错误 因为 数据行不在当前行集
  • 64 位随机生成器种子

    我目前正在运行一个具有 8 个以上管道 线程 的多线程模拟应用程序 这些管道运行非常复杂的代码 该代码取决于种子生成的随机序列 然后该序列被归结为单个 0 1 我希望在将种子从主线程传递到处理管道后 这种 随机处理 具有 100 的确定性
  • 预览MouseMove 与 MouseMove

    我有相当多的 XAML 经验 但最近我注意到我的大多数同事都使用预览鼠标移动代替鼠标移动事件 我一直用鼠标移动它对我很有帮助 但我忍不住问我什么时候应该使用预览鼠标移动什么时候鼠标移动 有什么区别 各自有什么优点和缺点等等 PreviewM
  • Json.net 将数字属性序列化为字符串

    我正在使用 JsonConvert SerializeObject 序列化模型对象 服务器期望所有字段都是字符串 我的模型对象具有数字属性和字符串属性 我无法向模型对象添加属性 有没有办法将所有属性值序列化为字符串 我必须只支持序列化 而不

随机推荐

  • 查看oracle有关主/外键约束的元数据

    哪个表包含有关约束的详细信息 例如外键引用的表 表 all cons columns all constraints 仅包含约束的名称 这不是很有帮助 我目前正在使用 dbms metadata get ddl 但它不适用于所有数据库 Th
  • Whatsapp 自动机器人无法在 WhatsApp 联系人列表中搜索

    我正在尝试实现一个 WhatsApp 机器人 它使用chromedriver并打开 Whatsapp 网页 并向联系人发送消息 这些是该程序的步骤 从 Excel 文件中读取联系人信息 设置您想要发送消息的时间以及要发送的消息 搜索该名称并
  • SQL Server 2017 快速安装失败

    我尝试在 Windows 10 上安装 SQL Server 2017 Express 但失败 这是失败后向我显示的详细信息 Action required Use the following information to resolve
  • iPhone 可以充当 eddystone 格式的信标吗

    我读到 Nexus6 和 Nexus9 只能充当 eddystone 格式的信标 目前我没有任何一部手机 我有一部iphone 我们可以用aniiphone来播放eddystone格式吗 不幸的是 这是不可能的 Apple 限制其 Core
  • Java认为我的主文件夹是C盘?

    由于某种原因 我必须更改某些配置或其他内容 因为在一个全新的项目中 我输入以下内容 System out println System getProperty user home 并得到以下输出 C 而以前 它常常返回类似的东西C User
  • 为什么删除 else 会减慢我的代码速度?

    考虑以下函数 def fact1 n if n lt 2 return 1 else return n fact1 n 1 def fact2 n if n lt 2 return 1 return n fact2 n 1 它们应该是等价的
  • 在 iPad 上使用 UIActionSheet

    Apple 的 UIActionSheet 文档让我感到困惑 首先 在 iPad 人机界面指南中 它说 要了解有关在代码中使用操作表的更多信息 请参阅 iPad 编程指南中的 使用弹出窗口显示内容 但在 使用弹出窗口显示内容 部分中 它根本
  • 使用mockito对DAO层进行单元测试

    我正在尝试使用 Mockito 对我的 Spring Hibernate 项目进行单元测试 以下是我的 DAO 类的实现 Repository public class EmployeeDAOImpl implements Employee
  • 将 NSOperation 子类化为并发且可取消

    我无法找到有关如何子类化的良好文档NSOperation并发并支持取消 我阅读了苹果文档 但找不到 官方 示例 这是我的源代码 synthesize isExecuting isExecuting synthesize isFinished
  • Bokeh,条形图和折线图的组合

    我试图在散景内的条形图顶部绘制一条线 我努力了 p1 figure p1 renderer append Bar p1 renderer append Line show p1 到目前为止我还没有运气 可以使用 Bokeh 将两个或多个图形
  • 最Pythonic的方式来打印*最多*一些小数位[重复]

    这个问题在这里已经有答案了 我想格式化浮点数列表 最多保留 2 位小数 但是 我不需要尾随零 也不想要尾随小数点 所以 举例来说 4 001 gt 4 4 797 gt 4 8 8 992 gt 8 99 13 577 gt 13 58 T
  • SBT - 使用汇编时多项目合并策略和构建 sbt 结构

    我有一个由多个较小项目组成的项目 其中一些项目相互依赖 例如 有一个依赖于 commons 项目的实用程序项目 其他项目可能依赖于公用事业或公共设施 也可能不依赖于两者 在 build sbt 中 我在文件末尾有程序集合并策略 以及程序集中
  • 在 PHP 中读取“分块”POST 数据

    我试图在发送时使用 Transfer Encoding chunked 从请求中读取 POST 数据 但在收到所有数据之前无法启动脚本 是否可以让 PHP能够在分块请求通过时对其做出反应吗 将 PHP 5 3 8 与 Apache 结合使用
  • 如何获取文件夹的大小,包括稀疏文件的表观大小? (du太慢了)

    我有一个包含很多KVM qcow2文件的文件夹 它们都是稀疏文件 现在我需要获取文件夹的总大小 qcow2 文件大小应计为表观大小 而不是实际大小 例如 图片 c9f38caf104b4d338cc1bbdd640dca89 qcow2 文
  • Visual Studio Code 中的 Pylint“未解析的导入”错误

    我正在使用以下设置 macOS v10 14 https en wikipedia org wiki MacOS Mojave 莫哈韦 Python 3 7 1 Visual Studio 代码 1 30 皮林特 2 2 2 姜戈2 1 4
  • 禁用“应用程序已停止工作”窗口

    我们获得了 NET WCF 服务 理想情况下该服务应具有 100 的正常运行时间 但有时我们的应用程序中会出现由第三方数据库连接组件引起的内存泄漏问题 我们配置 nnCron 来监视进程是否存在 并且当该服务的进程退出时 它应该再次启动它
  • 为什么区域 Google Cloud IP 地址都显示在美国?

    我在 asia east1 区域创建了一个虚拟机 它的 IP 地址为 35 201 212 242 当我在 iplocation net 等服务上查找此 IP 地址时 我被告知它位于美国 我在 australia southeast1 区域
  • Microsoft Office 应用程序的主要互操作程序集

    我正在尝试在我的 Web 服务器上安装 Microsoft Office 互操作程序集 用于从我的网站阅读 Word 文档 我可以只安装程序集吗 或者唯一的方法是安装办公套件 例外情况 Could not load file or asse
  • 查询格式错误,查询名称后没有 start_object

    我正在针对 AWS Elasticsearch 5 1 运行此查询并收到格式错误的查询错误 这是请求的正文 我基本上只是检查该字段在时间范围内是否存在 query bool filter bool must range timestamp
  • C 中文字数值的类型选择

    我想知道这一点 当我尝试将整数值分配给int变量 16 位编译器 整数 2 个字节 让我们说 int a a 40000 无法用将被截断的类型范围来表示 但我看到的是结果值a是 25000 或某个接近的数字 的位模式 这意味着编译器为十进制