sizeof (int) == 1 的实现可以“完全符合”吗? [复制]

2023-11-21

根据C标准,返回的任何字符fgetc以以下形式返回unsigned char值,“转换为int“(该引用来自 C 标准,表明确实存在转换)。

When sizeof (int) == 1, many unsigned char值超出范围。因此,其中一些可能unsigned char值可能最终会被转换为int值(转换的结果是“实现定义的或提出实现定义的信号”) of EOF,尽管文件实际上并未处于错误或文件结束状态,但仍会返回该值。

我惊讶地发现这样的实现确实存在。 TMS320C55xCCS手册文件UCHAR_MAX对应值为65535,INT_MAX有 32767 个,fputs and fopen支持二进制模式...更令人惊讶的是,它似乎将环境描述为完全一致、完整的实现(减去信号)。

C55x C/C++ 编译器完全符合 ISO 规范定义的 ISO C 标准...

编译器工具附带完整的运行时库。所有图书馆 函数符合 ISO C 库标准。 ...

这样的实现是否可以返回一个值来指示没有错误的地方,really完全符合?这是否可以证明使用feof and ferror在循环的条件部分(看起来很可怕)?例如,while ((c = fgetc(stdin)) != EOF || !(feof(stdin) || ferror(stdin))) { ... }


功能fgetc()返回一个int值范围为unsigned char仅当读取到正确的字符时,否则返回EOF这是类型的负值int.

我原来的答案(我改变了它)假设有一个整数转换为int,但事实并非如此,因为实际上该函数fgetc()已经返回类型的值int.

我认为,为了符合要求,实施必须做出fgetc()返回范围内的非负值int, 除非EOF被返回。

这样,从 32768 到 65535 的值范围将永远不会与 TMS320C55x 实现中的字符代码关联。

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

sizeof (int) == 1 的实现可以“完全符合”吗? [复制] 的相关文章

  • 在 C++ 中使用 matlab 结构(matlab 函数调用的返回值)(由 matlab 编译器生成的库)

    你好 我有一个相当简单的 matlab 函数 例如 function MYSTRUCT myfunc MYSTRUCT prop1 test MYSTRUCT prop2 foo MYSTRUCT prop3 42 end 我用 matla
  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • 如何在 .NET Framework 2.0 中模拟“Func<(Of <(TResult>)>) 委托”?

    我尝试使用这个类代码项目文章 http www codeproject com KB threads AsyncVar aspx在 VB NET 和 NET Framework 2 0 中 除了这一行之外 所有内容似乎都可以编译Privat
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 使用 LINQ2SQL 在 ASP.NET MVC 中的各种模型存储库之间共享数据上下文

    我的应用程序中有 2 个存储库 每个存储库都有自己的数据上下文对象 最终结果是我尝试将从一个存储库检索到的对象附加到从另一个存储库检索到的对象 这会导致异常 Use 构造函数注入将 DataContext 注入每个存储库 public cl
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • C++ 条件编译

    我有以下代码片段 ifdef DO LOG define log p record p else define log p endif void record char data 现在如果我打电话log hello world 在我的代码中
  • WebSocket安全连接自签名证书

    目标是一个与用户电脑上安装的 C 应用程序交换信息的 Web 应用程序 客户端应用程序是 websocket 服务器 浏览器是 websocket 客户端 最后 用户浏览器中的 websocket 客户端通过 Angular 持久创建 并且
  • 我的班级应该订阅自己的公共活动吗?

    我正在使用 C 3 0 遵循标准事件模式我有 public event EventHandler
  • Oracle Data Provider for .NET 不支持 Oracle 19.0.48.0.0

    我们刚刚升级到 Oracle 19c 19 3 0 所有应用程序都停止工作并出现以下错误消息 Oracle Data Provider for NET 不支持 Oracle 19 0 48 0 0 我将 Oracle ManagedData

随机推荐

  • Plotly:如何设置 x 轴上时间序列的主要刻度/网格线的值?

    背景 这个问题与以下问题相关 但不完全相同 Plotly 如何检索主要刻度线和网格线的值 类似的问题也被问过但没有得到解答绘图库 here 如何将主要刻度显示为每月的第一天 将次要刻度显示为每天 情节太棒了 也许唯一困扰我的是刻度线 网格线
  • Android 上的 Scala:java.lang.NoSuchMethodError:java.lang.String.isEmpty

    我在 Android 2 2 1 上遇到以下异常 java lang NoSuchMethodError java lang String isEmpty 我正在打电话text isEmpty来自斯卡拉 任何想法 如何解决这个问题 java
  • HashicorpVault - 客户端向 HTTPS 服务器发送 HTTP 请求 - 准备探针

    目前存在一个问题 即部署 Vault Helm 图表时就绪探针失败 Vault 正在工作 但每当我描述 Pod 时都会出现此错误 我如何让探测器使用 HTTPS 而不是 HTTP 如果有人知道如何解决这个问题我会很高兴慢慢失去理智 Kube
  • 同时使用多个Spring PropertyPlaceholderConfigurer

    我有两个项目 其中一个 服务 包括第二个 核心 我在核心项目中定义了下面的 PropertyPlaceholderConfigurer
  • 为什么 C 语言中移位的优先级低于加法和减法?

    我有时在进行位操作时发现这很不方便 尽管我现在不记得任何具体的例子 我还发现它在概念上令人困惑 因为移位基本上是乘法和除以 2 的幂 我发现在 C 中使用 因为这就是 C 语言的作者所决定的 使用括号以避免混淆
  • 如何将 Android 意图传递给除了我自己的应用程序之外的任何人?

    我有一个特定的意图 NDEF DISCOVERED 其中一些我无法正确处理 所以我想将它们重定向到 android 的默认 nfc 处理程序 所以我采取了意图 setComponent null 进而startActivity intent
  • 从 ASP.Net 页面运行批处理文件

    我试图通过 ASP Net 页面在服务器上运行批处理文件 这让我抓狂 当我运行下面的代码时 没有任何反应 我可以从一些日志语句中看到该代码运行 但我传递给该函数的 bat 文件从未运行 有人可以告诉我我做错了什么吗 public void
  • jQuery 无法在 AJAX 加载页面中工作

    我正在使用 jQuery 使用 ajax 假设 test html 通过 AJAX 加载页面 它是一个简单的 HTML 文档 带有一些按钮和单击它们时关联的动画 也使用 jQuery 当我直接加载页面时 关联的 click 属性工作正常 但
  • 用纯JS动画最大高度?

    我想要为 div 的高度设置动画 这通常在 CSS 中通过动画来完成max height财产 但是我需要在 JS 中执行此操作 div 填充了经常变化的动态内容 因此无法提前知道实际高度 这是一个jsfiddle https jsfiddl
  • 神经网络如何使用遗传算法和反向传播来玩游戏?

    我碰到YouTube 上这段关于遗传算法的有趣视频 正如您在视频中看到的 机器人学会了战斗 现在 我已经研究神经网络一段时间了 我想开始学习遗传算法 这在某种程度上将两者结合起来 如何结合遗传算法和神经网络来做到这一点 在这种情况下 人们如
  • Web API 和 ValidateAntiForgeryToken

    我们有一些现有的 MVC Web 服务 它们在网页中称为 AJAX 样式 这些服务利用 ValidateAntiForgeryToken 属性来帮助防止请求伪造 我们正在寻求将这些服务迁移到 Web API 但似乎没有等效的防伪功能 我错过
  • 注释会影响 Perl 性能吗?

    我正在优化一些经常运行的 Perl 代码 每个文件每天一次 注释会减慢 Perl 脚本的速度吗 我的实验倾向于不 use Benchmark timethese 20000000 comments gt b 1 comment 100 ti
  • 访问 Scala 中的注释值

    TL DR 基本上 我正在寻找 Java 的 Scala 等价物 MyAnnotation Thing getClass getAnnotations 0 尽管我可以很高兴地发现注释并根据其类型进行查询 但我似乎无法从scala refle
  • 使用 EBS 和 ELB 环境在 Node.js Express 应用程序中将 http 转发到 https

    我使用以下命令将所有 http 请求重定向到 https 请求 我可以从日志中看到标头 x forwarded proto 从未被填充且未定义 app get function req res next http docs aws amaz
  • db2 中更新表失败,SQLCODE:-668,SQLSTATE:57016,SQLERRMC:7;

    我正在使用 db2 9 5 我在表中创建了一个列 该列已成功创建 但我无法更新表列并出现以下错误 错误 脚本行 1 1 DB2 SQL 错误 SQLCODE 668 SQLSTATE 57016 SQLERRMC 7 DB2ADMIN XC
  • 使用多个帐户登录时,Google OAuth2 返回错误请求

    当我使用多个帐户登录谷歌时 我正在尝试授权自己https stackoverflow com users login 或任何其他使用 OAuth2 的网站 I get a Bad Request Error 400 当我处于隐身模式时不会发
  • Pygame:重新调整像素大小

    使用 pygame 我创建了一个 20x20 像素窗口并添加了一个 2x2 像素矩形 当我运行该程序时 窗口尺寸非常小 我几乎看不到矩形 如何在保持像素数量不变的情况下增加窗口大小 即增加像素大小 我知道这个类似的问题 但讨论了更复杂的情况
  • 在 C# 中将 ushort 值转换为两个字节值

    如何在 C 中将 ushort 拆分为两个字节变量 我尝试了以下方法 package FrameID 是 ushort 当我尝试用纸和铅笔计算时 我得到了正确的结果 另外 如果 FrameID 大于一个字节 因此第二个字节不为零 则它可以工
  • 进行多个 ajax 回调时保持请求顺序

    我循环遍历几个项目并对每个项目发出 ajax 请求 使用 jQuery 我希望它们独立执行 但按照它们被调用的顺序填充到 DOM 中 而不是它们返回的顺序 由于某种原因 某些请求比其他请求花费的时间更长 关于此类事情的最佳实践有什么建议吗
  • sizeof (int) == 1 的实现可以“完全符合”吗? [复制]

    这个问题在这里已经有答案了 根据C标准 返回的任何字符fgetc以以下形式返回unsigned char值 转换为int 该引用来自 C 标准 表明确实存在转换 When sizeof int 1 many unsigned char值超出