为什么“fputc”使用 INT 作为参数而不是 CHAR?

2023-11-21

标准 C 库:

int fputc(int c , FILE *stream);

并且这样的行为多次发生,例如:

    int putc(int c, FILE *stream);
    int putchar(int c);

为什么不直接使用 CHAR 呢? 如果必须使用 INT,什么时候应该使用 INT 而不是 CHAR?


Most likely(在我看来,由于早期 C 语言背后的大部分基本原理都已在时间的深处消失了),它只是为了反映 C 语言中使用的类型。fgetc必须能够返回任何实数字符的类型函数plus the EOF特殊字符。这fgetc函数将下一个字符转换为int,并使用特殊的标记值EOF来指示流的结束。

为此,他们需要更广泛的int键入自achar不够大,无法容纳所有可能的字符再加上一件事。

而且,由于 C 的开发人员似乎更喜欢极简主义者的代码方法,他们使用相同的类型是有道理的,以允许诸如以下的代码:

filecopy(ifp, ofp)
    FILE *ifp;
    FILE *ofp;
{
    int c;
    while ((c = fgetc (ifp)) != EOF)
        fputc (c, ofp);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么“fputc”使用 INT 作为参数而不是 CHAR? 的相关文章

  • RVM 无法通过 SSH 工作(作为一项功能)

    我刚刚在 Debian 6 服务器上安装了 RVM 一开始没有任何问题 但是 在一切设置完成后 我无法在终端中运行 RVM 我打字时收到的消息rvm use is RVM is not a function selecting rubies
  • Realloc 和 sscanf 到一个函数中

    我有一个文件 里面有num行 每一行包含一个数字 我想将每个数字保存到一个向量中 vet 为什么这段代码不起作用 Segmentation fault core dumped 我认为错误是sscanf in save numbers功能 但
  • Python:在函数名中使用空格?

    我正在编写一个 python 脚本来调用函数 通常调用函数 def myCall print Hello World 但我想将该函数命名 使用为 def my Call print I did it 我知道世界会开始思考为什么程序员会这样命
  • C++17 中带有 noexcept 的 std::function

    在 C 17 中noexcept 已添加到类型系统中 http www open std org jtc1 sc22 wg21 docs papers 2015 p0012r1 html void r1 void f noexcept f
  • C++继承自具有相同虚函数名的多个基类

    我尝试了这段代码 class A virtual void foo 0 class B virtual void foo 0 class C public A public B virtual void A foo virtual void
  • 跨 HTML 窗口调用 Javascript 函数

    根据this https stackoverflow com questions 87359 can i pass a javascript variable to another browser window页面我应该能够调用子窗口的参数
  • 我可以向函数添加属性以防止重入吗?

    目前 我有一些如下所示的功能 private bool inFunction1 false public void function1 if inFunction1 return inFunction1 true do stuff whic
  • 类型错误:在自定义 python 函数中找到预期字节、str

    我正在使用一种名为 Giggle 的新生物信息学工具 并且我已经在我的系统上安装了 python 包装器 尽管场景非常具体 但我认为问题非常普遍 这个功能 index Giggle create index HMEC hg19 BroadH
  • 是否可以替换 php 中的函数(例如邮件)并使其执行其他操作?

    我想用 PHP 重写一个函数 比如说 mail 函数 并且希望从现在开始调用 mail 时 它将加载我的 mail 版本而不是默认的 php 版本 这在 php 中可能吗 我想这样做的原因是因为我有数千行调用 mail 的代码 并且我不想重
  • 如何在 PostgreSQL 函数中声明行类型数组?

    我正在尝试创建一个 PostgreSQL 函数 在用它做更多事情之前 我将循环查询的行并将其中一些存储在数组中 如何创建行类型数组 CREATE OR REPLACE FUNCTION forExample RETURNS integer
  • wordpressfunctions.php - 为每个帖子类别使用不同的页面模板

    我想连接到 save post 函数 找出帖子所属的类别 然后为每个类别中的帖子分配不同的页面模板 我已经尝试了大约 30 个不同的版本 但都没有成功 有人可以帮我指出正确的方向吗 add action save post assign c
  • 函数 SQL 中的函数

    我可以在表值函数中调用标量函数吗 Thanks 是的 只要表值函数完成后返回一个表即可 用户自定义函数可以嵌套 也就是说 一个用户定义的函数可以 呼叫另一个 嵌套级别为 被调用函数时递增 开始执行 并在以下时间递减 被调用函数完成 执行 用
  • 查找提供的 Sum 值的组合

    我有一系列这样的数字 myvar 57 71 87 97 99 101 103 113 114 115 128 129 131 137 147 156 163 186 现在我想计算所有这些可能的组合 长度为1到20 其总和等于给定的数字m
  • Clojure 中的宏和函数

    我在这个 Clojure 教程中读到了以下行 http java ociweb com mark clojure article html Macros http java ociweb com mark clojure article h
  • 如何在 jQuery 中声明和使用函数

    我想知道如何在 jQuery 脚本中声明函数 我现在拥有的 function adjust menu alert test test 但是当我这样称呼它时 first link click function adjust menu 它不起作
  • 强制一个 javascript 函数等待运行,直到第一个函数完成

    下午 我遇到了一个问题 我需要运行一个函数 然后在完成后 运行下一个函数 并对四个函数执行此操作 我已经尝试了一段时间 试图找到正确的布局语法我的函数调用但似乎找不到任何东西来解决这个特定的场景 html div div div jquer
  • Python Tkinter,停止线程函数

    我目前正在为 3D 打印机开发 GUI 并且遇到如何停止线程函数的问题 我希望能够单击 GUI 中具有另一个功能的按钮 该按钮将阻止线程函数通过串行端口发送 G 代码字符串 目前 该函数已合并线程 以允许在打印期间触发其他函数 我非常感谢有
  • C++ 如何确定字母表中一个单词是否在另一个单词之前

    我正在使用sort C 中的函数对 Game 类型的对象向量进行排序 这是我自己定义的 为此 我手动编写一个函数来代替operator lt 并将作为第三个参数传递给sort 功能 首先 我根据分数进行比较 然后 如果分数相同 我会根据球队
  • strlen(s) 和 (strlen)(s) 之间有什么区别吗? [复制]

    这个问题在这里已经有答案了 在 bstrlib c bstring 库 中 有几个地方在函数调用周围放置了括号 什么目的 代码片段 bstring bfromcstr const char str bstring b int i size
  • 为什么我的函数将布尔值更改为“on”?

    所以我是 php 编程世界的新手 我正在在线学习和其他形式等 但我找不到任何东西来帮助回答我的问题 这就是我在这里的原因 任何帮助当然不胜感激 谢谢 我想将下面的代码变成我可以调用的函数 它的工作原理如下所示 如果我选中表单中的复选框 它会

随机推荐

  • 合作多重继承问题

    这是一个扩展这个问题并提出了一个问题 希望您 我的 StackOverflowers 同胞能够帮助我解决这个问题 从引用的问题中 考虑最终的代码示例 class A object def init self print entering A
  • 将任意 R 对象存储到 HDD 上?

    据我所知 我们可以将数据矩阵导出到csv or xlsx files 对于像这样的复杂对象呢 lm 例如 在我的工作中 我可能有一个长度为 1000 的列表 每个列表都有一个lm 目的 每次我加载R我必须等待很长时间才能用这些填充 1000
  • 错误:(-2:未指定错误)该功能未实现。使用 Windows、GTK+ 2.x 或 Cocoa 支持重建库

    我正在 jupyter 笔记本上从事手语检测项目 在运行活体检测代码时 我遇到了如下错误 OpenCV 4 5 1 C Users appveyor AppData Local Temp 1 pip req build 1drr4hl0 o
  • 加载数据时pig出错

    我使用的是 ubuntu 12 02 32bit 并已安装hadoop2 2 0 and pig 0 12成功地 Hadoop 在我的系统上运行正常 但是 每当我运行此命令时 data load atoz csv using PigStor
  • 将应用程序配置为 Facebook 错误:“应用程序的 Facebook 登录配置错误..”[重复]

    这个问题在这里已经有答案了 可能的重复 应用程序的 Facebook 登录配置错误 Android Facebook 集成问题 我正在尝试将 facebook 集成到我的应用程序中 当我按下登录按钮并填写电子邮件和密码时 我在应用程序中收到
  • Angular Material 7 拖放 x 和 y 坐标

    我有一个容器 里面有一个元素 我希望能够将元素拖动到容器内的另一个位置并查看新的 x 和 y 坐标 其中 x 0 和 y 0 是容器的左上角 我在以下位置设置了一个基本的 stackblitzhttps stackblitz com edi
  • 为什么我的数字四舍五入不正确?

    这感觉像是那种只会在原地失败的代码 但我会尝试将其改编成代表我所看到内容的代码片段 float f myFloat myConstInt Where myFloat 13 45 and myConstInt 20 int i int f i
  • 执行 pipfile 脚本

    如何执行 Pipfile 中定义的脚本 按照语法发现here 我在 pipfile 中定义了脚本部分 如下所示 scripts tests bash run tests sh 运行后 pipenv install 我怎样才能调用tests
  • 安装apk时出现java.lang.SecurityException

    如你所知 apk 是一个 zip 存档 我提取了它并替换了一些资源 然后再次压缩它 当我安装它时 我收到此异常 java lang SecurityException META INF MANIFEST MF 具有无效摘要 这个错误有什么解
  • 什么时候调用 C++ 析构函数?

    基本问题 程序何时调用 C 中类的析构函数方法 有人告诉我 只要一个对象超出范围或受到某个对象的影响 就会调用它delete 更具体的问题 1 如果该对象是通过指针创建的 并且该指针后来被删除或被赋予一个新的地址来指向 那么它所指向的对象是
  • TaskCreationOptions.AttachedToParent 不等待子任务

    根据 MSDN 您可以使用 AttachedToParent 选项来表达结构化任务 并行性 因为父任务隐式等待所有子任务 要完成的任务 所以我有这个代码 public async Task
  • 读取内核空间中的符号链接

    我正在编写 LKM 需要找出特定符号链接指向的位置 基本上我需要系统调用的功能readlinkat or readlink 但是在内核空间中 是否有捷径可寻 Using readlinkat直接对我不起作用 我总是收到 EFAULT 我猜这
  • 定义内部枚举[重复]

    这个问题在这里已经有答案了 在linux内核源代码中 我看到在枚举内部 是否还有一个与枚举元素同名的定义 示例中linux rtnetlink h我们有 enum RTM BASE 16 define RTM BASE RTM BASE R
  • 循环引用和 WCF

    我已经使用 POCO Generator 生成了 POCO 实体 我的数据库中有超过 150 个表 我在整个应用程序层 包括客户端 共享 POCO 实体 我在我的上下文中禁用了 LazyLoading 和 ProxyCreation 我在数
  • 在不知道xml文件结构的情况下解析xml文件内容

    我一直在学习一些使用 java 解析文件的新技术 对于 msot 部分 进展顺利 但是 我不知道如何将 xml 文件解析到收到后结构未知的位置 如果您知道结构的话 有很多关于如何执行此操作的示例 getElementByTagName 似乎
  • 如何获取android中加载mapview的进度状态?

    当地图处于加载状态时 我想在地图视图的中心放置一个进度条 如何获得进度 以及怎么办 给我一些例子 thanks 我认为没有任何合理的方法可以做到这一点 请注意 谷歌在其地图应用程序中也没有这样做 只需查看页面即可清楚地了解图块是否仍在加载
  • Spring security - oauth2 资源服务器测试

    我在使用 WebMvcTest 和 POST HTTP 方法测试 oauth2 资源服务器时遇到一些问题 当我不发送 csrf 令牌时 我总是收到 403 状态代码 即使当我使用不记名令牌时不需要该令牌 这是我要测试的 POST 方法 Po
  • 保持回发时的页面位置

    我有个问题
  • 从 URL 获取路径

    寻找一种从 PHP 中的 URL 获取路径的方法 我要拿 http example com hurrdurr 并做到 hurrdurr 我只想要后面的文字 com 我可以用修剪来做到这一点吗 Use parse url来提取你想要的信息 例
  • 为什么“fputc”使用 INT 作为参数而不是 CHAR?

    标准 C 库 int fputc int c FILE stream 并且这样的行为多次发生 例如 int putc int c FILE stream int putchar int c 为什么不直接使用 CHAR 呢 如果必须使用 IN