声明和原型的区别

2024-04-06

C 中的声明和原型有什么区别?在哪些情况下它们被称为声明以及原型?


TL;DR;所有原型都是声明,但并非所有声明都是原型。

宣言是标准中使用的通用术语,原型更具体。

Quoting C11,第 §6.7 章

声明指定一组标识符的解释和属性。 [...]

并从 §6.7.6 开始,

每个声明符声明一个标识符,并断言当操作数相同时 形式作为声明符出现在表达式中,它指定一个函数或对象 声明说明符指示的范围、存储持续时间和类型。

另一方面,根据第 §6.2.1 章

[....] 一个功能 原型是函数的声明,声明其参数的类型。

因此,原型是一种更完整的声明形式(包括参数类型)。


关于“标识符”:第 §6.4.2.1 章,

标识符是非数字字符的序列(包括下划线_, 这 小写和大写拉丁字母以及其他字符)和数字,它们指定 6.2.1 中描述的一个或多个实体。 [...]

在第 §6.2.1 章中,

标识符可以表示一个对象;一个函数;结构、联合或的标签或成员 枚举; typedef 名称;标签名称;宏名称;或宏参数。 [...]

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

声明和原型的区别 的相关文章

随机推荐

  • 我可以在具有删除规则的关系的实体上使用 NSBatchDeleteRequest 吗?

    我正在尝试使用 NSBatchDeleteRequest 删除一堆实体 其中许多实体具有删除级联和 或无效规则 我第一次尝试删除任何内容失败 并且返回的 NSError 包含字符串 批量删除不支持删除规则 我原以为删除这些东西很好 但我有责
  • 如何使用 Angular 在 vi​​s.js 中实现网络可视化?

    我已经通过以下方式安装了我需要的依赖项 vis js npm install vis save 类型 可见 npm install types vis save dev 代码片段 import Component AfterViewInit
  • invokedynamic 什么时候真正有用(除了惰性常量之外)?

    TL DR 请提供一段用一些众所周知的动态语言 例如 JavaScript 编写的代码 以及该代码在使用 invokedynamic 的 Java 字节码中的样子 并解释为什么使用 invokedynamic 是一个进步 背景 我在 goo
  • 如何对 axios 响应拦截器进行自定义错误代码检查?

    我在我的应用程序中使用 graphql 它错误地发送以下响应 您可能已经注意到 graphql 将所有错误作为状态代码 200 发送 我从 API 返回的错误位于data errors data errors message Error T
  • 剃刀组件中的 C# StateHasChanged() 不会强制

    我正在尝试服务器端 blazor 我正在尝试使用多个按钮设置 更改在剃刀组件的标签中播放的 mp4 文件 我发现实现这项工作的唯一方法是通过 IJSRuntime InvokeVoidAsync 从我的 razor 组件中的 OnParam
  • Webpack 图像文件夹

    我对 webpack 还很陌生 当我部署时我基本上得到了JS文件和一堆在同一文件夹中像这样乱码的图像 我愿意为此not即将发生 我想让图像文件保留它们的名称 因为在我的 javascript 中 我想动态加载图像文件以及资源文件中的其他内容
  • 在威特的最后...Javascript不会取代'\n'!

    我已经研究这个问题好几个小时了 但运气为零 不知道这怎么可能 我会尝试总结一下 我正在使用 TinyMCE 将新内容插入数据库 该内容在插入数据库后作为 AJAX 响应发送回 然后显示在页面上 替换一些旧内容 所有这些都与问题无关 据我所知
  • 如何在父 DIV 容器中移动 DIV 并调整其大小而不溢出?

    let isSelecting false let selectionStartX selectionStartY selectionEndX selectionEndY let selectionRectangle let dragged
  • iphone:(音频)发布消息以杀死 mediaserverd

    我正在使用以下方法播放几种声音 音频服务 https developer apple com library mac documentation AudioToolbox Reference SystemSoundServicesRefer
  • 如何在VB.net中读取PDF文件或在VB.net中将PDF转换为word文档

    我需要使用 VB net 编写的应用程序阅读 PDF 中的文本 目前最好的方法是什么 我也愿意先将 PDF 转换为 Word 文档 然后阅读 iTextPdf 看起来是一个很好的起点 开源和 C 所以任何示例都应该可以移植到 vb net
  • 如何以编程方式接收超过 10 条亚马逊 SQS 消息

    我们有 SQS 标准消息队列 并且它的增长速度非常快 大多数时候我们都会收到旧的通知 我们已将消息保留期配置为 2 天 有没有办法以编程方式接收超过 10 条消息 以下是我从亚马逊恢复 SQS 消息的代码 private IEnumerab
  • 反斜杠零分隔符 '\0'

    我见过 0 用作混合二进制文件 UTF8 字符串 二进制数据 中的分隔符 谁能解释一下什么 0 意味着或指向一个好的学习场所 这是空字符 更多信息请参见此维基百科article http en wikipedia org wiki Null
  • 重置页面上的所有复选框而不循环

    我想知道是否可以在不使用 jQuery 循环的情况下重置页面上的所有复选框 将它们标记为未选中 您可以使用单个选择器查找所有选中的复选框 并从中删除 checked 属性 jQuery 将通过循环在内部完成此操作 但您不必自己编写循环 ch
  • Javascript -Uncaught 承诺被拒绝,即使它已经被拒绝

    我正在运行这个 Parse com 云代码作业 它查询我的一个类并获取 url 然后我读取这些 url 它们是 xml 文件 然后从其中获取一些数据并将其保存以进行解析 从代码中可以看出 这是代码 完整代码在这里gist github co
  • 使用提交更新 docker 镜像并进行小的更改

    我想利用 Docker 镜像的缓存 分层来节省带宽 磁盘空间和时间 Let say 我安装了一个 Web 应用程序 docker 映像并将其部署到多个 docker 主机中 docker 镜像包含我的网络应用程序的源代码 我编写了代码 现在
  • 哈希表插入失败。负载系数太高。 - ASP.NET 4.0 MVC3

    我们有一个在 F5 负载平衡服务器上运行的 ASP NET 4 0 MVC3 应用程序 我们收到了下面的异常 我们不在 Web 应用程序中执行多线程 但不知道 F5 负载平衡服务器是否可以考虑到该等式中 我们看到早期版本的 NET 中发生异
  • 为什么 Java Map 对 get 和 remove 方法采用无类型参数?

    我在代码中遇到了一个错误 我使用了错误的密钥从 Java 映射中获取一些我认为是使用 Java 泛型强类型的内容 查看 Map Javadocs 时 许多方法 包括 get 和 remove 都采用对象作为参数 而不是类型 K 对于定义为
  • .net 消息循环

    谁能帮我解释一下如何与 WPF 中的消息循环交互 我知道如何开始使用 System Windows Threading Dispatcher Run 现在 我只需要一种调用它的方法 我有一个 while 循环 我想在消息循环中处理消息 wh
  • WordPress 5.2 YouTube 视频在帖子中自动嵌入功能不起作用

    在我的个人 WordPress 博客 5 2 中 视频自动嵌入功能不起作用 编辑器会显示一个微调框 非常简短 但随后它会在后端显示视频链接 并在前端以纯文本形式显示 URL 我尝试过在不同的浏览器中更改帖子 全部失败 我尝试了不同的视频 有
  • 声明和原型的区别

    C 中的声明和原型有什么区别 在哪些情况下它们被称为声明以及原型 TL DR 所有原型都是声明 但并非所有声明都是原型 宣言是标准中使用的通用术语 原型更具体 Quoting C11 第 6 7 章 声明指定一组标识符的解释和属性 并从 6