函数声明与函数定义

2024-01-21

如果我有这个原型:

int bar(int);

对于编译器我是宣告标识符bar.

如果我有这样的定义:

int bar(int a) {};

对于编译器我是defining标识符bar.

一般来说,定义会为对象分配存储空间,但是:

  1. 函数声明也是如此吗?另外在这种情况下没有分配存储空间?
  2. 为函数定义分配的存储空间是多少以及何时分配?

附: C 规范在谈到声明或定义时谈到了它们与标识符的相对关系(即标识符的声明...) 但我也读过文字,其中说变量的声明。 那么是否存在一些差异,或者只是“双向”地表达一种含义?


对于函数,存储分配是在函数第一次调用时完成的。定义本身并不进行存储分配。

还应该注意的是,当函数的返回类型为void。因此,编译器应该发出警告

int bar(int a) {};  

[警告] 控制到达非 void 函数的末尾 [-Wreturn-type]
[警告] ISO C 不允许额外的 ';'在函数之外 [-迂腐]

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

函数声明与函数定义 的相关文章

随机推荐

  • C# 中的字符串到二进制

    我有一个将字符串转换为十六进制的函数 如下所示 public static string ConvertToHex string asciiString string hex foreach char c in asciiString in
  • 使用 openssl_encrypt 替换 Mcrypt 进行 3DES-ECB 加密

    我有一个使用 mycrypt 的加密方法 密码是3des mode ecb mcrypt module open MCRYPT 3DES ecb 现在我想使用它来加密openssl encrypt 而且我没有找到des3 ecb in op
  • 在 RxJS 中取消订阅主题

    我发现以下构造对我来说有点令人困惑 打字稿中提供的示例 let someSubject Subject
  • 在 MongoDB 中使用 MapReduce 连接两个集合

    我已经知道 MongoDB 不支持连接操作 但我必须模拟一个 lookup 来自聚合框架 mapReduce范例 我的两个收藏是 Employees sample id 1234 first name John last name Bush
  • 如何获取分页的物料数据表页面中只显示的数据

    我需要将当前页面上显示的数据导出为 Excel 或 pdf 那么如何获取只显示在页面上的数据呢 我将整个数据存储在数据源对象中 例如 如果每页有 10 个项目 我需要这 10 个项目 如果我将分页器项目列表更改为 20 那么我需要 20 个
  • Java垃圾收集和图形处理方法

    我正在创建一个游戏 蛇克隆 作为一种爱好 我正在查看 Java API 中 Graphics 类的 dispose 方法 当我注释掉 dispose 方法时 无论有没有它 我的动画都会以相同的方式工作 在 Java API 中 dispos
  • Scala 中“不支持不安全的 HTTP 请求”错误

    尝试运行时出现以下错误sbt run运行我的 Scala 代码 insecure HTTP request is unsupported http repo typesafe com typesafe releases switch to
  • 如何根据用户在文本字段中输入的电子邮件从 Firebase 数据库检索值?

    我正在研究 Firebase 数据库 如何根据用户在文本字段中输入的电子邮件从数据库中检索值 下面是我的数据库结构 请帮忙 这是我的代码 Ref database getReference Registeration Ref orderBy
  • onMeasure() 以 EXACTLY 和规格大小 0 调用

    调试自定义视图覆盖时onMeasure 方法 我看到有几个对此方法的调用 我只处理视图的高度 宽度规格始终保持不变 有时我接到一个关于 高度 MeasureSpec 的电话getMode EXACTLY and getSize 0 This
  • 使用 Symfony 强制使用 HTTPS

    我试图强制所有对 example com checkout 的请求使用 HTTPS 我读了Symfony 文档 http symfony com doc current cookbook security force https html并
  • 是否有不同步的 Java Stack 的直接替代品?

    我有一个使用堆栈数据结构的大型代码库 由我编写 这是为了方便起见 我有时将其用作堆栈 有时将其用作向量 列表 然而 经过性能审查后 我们决定不想为同步安全支付额外费用 我现在需要用非同步结构替换这个结构 并且在代码中多次提到 我很高兴发现
  • golang中资源应该保存在哪里

    我的应用程序使用 json 配置文件和其他资源 我应该将它们放置在项目层次结构中的哪个位置 我找不到答案http golang org doc code html http golang org doc code html 如何编写Go代码
  • Angular.js ui-grid 自定义日期过滤器

    我正在使用角度网格 ui grid 位于ui grid info http ui grid info 我正在尝试制作一个自定义过滤器 它将使用日期输入控件按日期过滤网格 一个用于小于 一个用于大于 我似乎可以在 columnDefs 中使用
  • 动态更改IP地址?

    考虑一下这个案例 我想经常抓取网站 但有一天 限制后我的IP地址被阻止了 那么 如何动态更改我的IP地址或任何其他想法 一种方法使用Scrapy http scrapy org 将使用两个组件 RandomProxy and RotateU
  • 了解oauth 2.0中客户端id、客户端密钥的需求

    我有一个网站 要求用户通过提供电子邮件和密码来登录以获得访问令牌 其中访问令牌令牌用于访问 api 然后 用户可以在访问令牌提供的范围内获得读 写的访问权限 那么 这里我想了解的是 client id 和 client Secret 在这种
  • Automapper、泛型、dto funtimes

    这是交易 我有一个报告设计器 用户可以根据一些预定义的数据集创建报告 他们可以选择要包含在报告中的一组列 然后在运行报告时 通过使用自动映射器将 NHibernate 集合映射到 dto 类集合来创建 IList 这样做的问题是 DTO 集
  • E:软件包“oracle-java8-installer”没有安装候选者

    我尝试使用以下命令安装 java8 sudo add apt repository ppa webupd8team java sudo apt get update sudo apt get install oracle java8 ins
  • React Bootstrap 弹出窗口在外部点击时关闭

    React Bootstrap 提供了一个弹出窗口控件 我希望在单击弹出窗口外部时将其关闭 其方式与模态的工作方式类似 默认情况下点击开箱即用即可将其关闭 有没有办法使用 ReactBootstrap 来做到这一点 或者我需要自定义代码吗
  • SwiftUI – 如何将 NavigationView 的标题设置为大标题(或小标题)?

    使用 SwiftUI 如何更改导航栏的标题大小 在标准标题或大标题之间进行选择 SwiftUI iOS 14 NavigationView TopLevelView navigationBarTitleDisplayMode inline
  • 函数声明与函数定义

    如果我有这个原型 int bar int 对于编译器我是宣告标识符bar 如果我有这样的定义 int bar int a 对于编译器我是defining标识符bar 一般来说 定义会为对象分配存储空间 但是 函数声明也是如此吗 另外在这种情