为什么 memset 采用 int 而不是 char?

2023-11-21

为什么memset采取一个int作为第二个参数而不是char, 然而wmemset需要一个wchar_t而不是类似的东西long or long long?


memset早于(相当多)将函数原型添加到 C 中。没有原型,您can't pass a char到一个函数——当/如果你尝试,它会被提升为int当你传递它时,函数接收到的是int.

还值得注意的是,在 C 中(但不是在 C++ 中)像这样的字符文字'a' does not有类型char-- 它有类型int,所以你通过的将会usually开始作为int反正。本质上,它作为一个字符开始并获得晋升的唯一方法是如果你通过一个char多变的。

理论上,memset可能会被修改,因此它会收到一个char而不是int,但不太可能有任何好处,并且很有可能破坏一些旧代码或其他代码。由于成本未知但可能相当高,而且几乎没有机会获得任何真正的好处,我想说它被改变以获得char正好位于“苗条”和“无”之间的界线上。

价值memset写入目标的是将其第二个参数的值转换为unsigned char.

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

为什么 memset 采用 int 而不是 char? 的相关文章

随机推荐

  • javax.net.ssl.SSLException:收到致命警报:bad_record_mac

    我得到了一个javax net ssl SSLException Received fatal alert bad record mac用于 HTTPS 连接 并非每个请求都会发生这种情况 如果我发送相同的请求 10 次 我只会收到一两次此
  • 具有自定义浮点格式的 pprint

    我有一个带有元组键的嵌套字典结构 当我使用 pprint 漂亮地打印字典时 条目如下所示 A B C 0 14285714285714285 D 0 14285714285714285 E 0 14285714285714285 F 0 1
  • 指定的 JDK 版本为“2724.0.0.0.0”,最大值为“500.0.0.0.0”

    在安装 Netbeans IDE 最新版本时 我遇到了错误 指定的 JDK 版本为 2724 0 0 0 0 而最大值为 500 0 0 0 0 不确定是什么导致了这个问题 类路径 Java Home 都已正确设置 甚至jdk路径在Netb
  • java.io.StreamCorruptedException:无效的流标头:75720002

    我正在创建一个服务器客户端应用程序 其中服务器将 pdf 文件发送到所有连接的客户端 问题是我收到此错误 我寻找解决方案但找不到任何解决方案 这是错误 java io StreamCorruptedException invalid str
  • Eclipse 中缺少“maven package”菜单项

    我正在使用 Eclipse 3 7 和 m2eclipse 以前我知道有一个菜单条目 maven package 但由于我重新安装了 Ubuntu 所以没有条目 我必须 maven install 才能执行相同的操作 现在我想知道是否可以找
  • uniqid有多独特?

    这个问题其实并不是一个寻求解决方案的问题 而更多的是一个简单的好奇心问题 PHP uniqid 函数有一个更多的熵标志 使输出 更独特 这让我想知道 当 more entropy 为真时和不为真时 该函数多次产生相同结果的可能性有多大 换句
  • Java 类中的 Scala getter 和 setter

    我想创建一个遵循 Scala setter getters 约定的 Java 类 我尝试遵循简单的课程 但它不起作用 public class JavaA private int a 0 public int a return a publ
  • 在 Delphi 2009 中显示 PDF 文件的最佳方式是什么 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我应该使用什么组件在 Delphi 2009 应用程序中显示 PDF 文件 EDIT 我一直在使用PDF阅读器by Synactis 一个非常好的免
  • 我是否正确使用了 Java 7 try-with-resources

    我期望缓冲读取器和文件读取器关闭 并在抛出异常时释放资源 public static Object fromFile String filePath throws FileNotFoundException IOException try
  • 删除 Google App Engine 别名应用程序?

    我最近将 App Engine 应用程序从主 从数据存储迁移到高复制数据存储 这创建了两个应用程序 使用示例应用程序名称 myapp myapp hd myapp appspot com 是 myapp hd appspot com 的别名
  • 如何在 ColdFusion 中的 cfloop 查询中获取动态属性名称

    我在一个cfloop通过查询 我想获取一个属性 但直到运行时我才知道该属性是什么 使用 qryResult MyAttr 失败并显示错误 复杂对象类型无法转换为简单值 执行此操作的语法是什么 这是一个简化的示例
  • 包含有关存储过程参数信息的 SQL Server 系统表是什么?

    包含有关存储过程参数的信息 例如数据类型 名称 长度 是否为空 的 SQL Server 系统表是什么 thanks 您可以查询 sys procedures 和 sys parameters select pr name p from s
  • JQuery event.stopPropagation() 不起作用

    在我的 html 中 我在 li 中嵌入了一个 DragHandle 类的跨度 div class treeView ul class tree li span class dragHandle span Item 1 ul li span
  • 打印 html 页面时的边距

    我使用单独的样式表进行打印 是否可以在设置打印边距的样式表中设置左右边距 即纸张上的边距 你应该使用cm or mm当您指定打印时作为单位 使用像素将导致浏览器将其转换为类似于屏幕上显示的内容 使用cm or mm将确保纸张上的尺寸一致 b
  • python 中的并行性无法正常工作

    我正在使用 python 2 7 在 gae 上开发一个应用程序 一个 ajax 调用从 API 请求一些数据 单个请求可能需要约 200 毫秒 但是当我打开两个浏览器并在非常接近的时间发出两个请求时 它们花费的时间比双倍的 我尝试将所有内
  • 纯 Javascript 中的元素坐标

    假设我在 div 中有一个元素 或任何其他包含元素 或者可能只是在文档正文中 如何获取该元素相对于其容器的 x y 坐标 我需要能够用纯 Javascript 来完成它 The offsetTop and offsetLeft属性是相对于o
  • 如何查看 Boost.Build 调用的 g++ 命令行 (1.33.1)

    我摸不着头脑 试图找出为什么在我的机器上构建 Boost 库时没有生成导入库 更具体地说 构建 DLL 工作正常 但我之前 即在重新安装计算机之前 正确生成了导入库 一些规格 升压1 33 1 适用于 Windows 的 g 4 3 3 T
  • 为什么 ES6 类中的“this”不是隐式的?

    我知道 ES6 解决了很多存在的问题thisES5 中的关键字 例如箭头函数和类 我的问题涉及this在 ES6 类的上下文中以及为什么必须显式地编写它 我最初是一名 Java 开发人员 在我的世界里 下面的代码行是非常自然的 class
  • 在另一个进程中从内存执行一个进程?

    我想要一个小型的 应用程序加载器 程序 它通过 TCP 从外部服务器接收其他二进制应用程序文件并运行它们 我可以通过将传输的文件保存到硬盘并使用 system 调用来运行它来做到这一点 但是 我想知道是否可以从内存启动新应用程序而不接触硬盘
  • 为什么 memset 采用 int 而不是 char?

    为什么memset采取一个int作为第二个参数而不是char 然而wmemset需要一个wchar t而不是类似的东西long or long long memset早于 相当多 将函数原型添加到 C 中 没有原型 您can t pass