函数声明与函数定义

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(使用前将#替换为@)

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

  • 为什么使用abs()或fabs()而不是条件否定?

    在 C C 中 为什么要使用abs or fabs 不使用以下代码即可查找变量的绝对值 int absoluteValue value lt 0 value value 这与较低级别的指令较少有关吗 您提出的 有条件的abs 并不等于std
  • 捕获 foreach 条件中抛出的异常

    我有一个foreach在 foreach 本身的条件下循环期间中断的循环 有没有办法try catch抛出异常然后继续循环的项 这将运行几次 直到异常发生然后结束 try foreach b in bees exception is in
  • Blazor 与 Razor

    随着 Blazor 的发明 我想知道这两种语言之间是否存在显着的效率 无论是在代码创建方面还是在代码的实际编译 执行方面 https github com SteveSanderson Blazor https github com Ste
  • ASP .NET MVC,创建类似路由配置的永久链接

    我需要帮助在 MVC 网站中创建类似 URL 路由的永久链接 Slug 已设置为 www xyz com profile slug 代码为 routes MapRoute name Profile url profile slug defa
  • 调试内存不足异常

    在修复我制作的小型 ASP NET C Web 应用程序的错误时 我遇到了 OutOfMemoryException 没有关于在哪里查看的提示 因为这是一个编译时错误 如何诊断此异常 我假设这正是内存分析发挥作用的地方 有小费吗 Thank
  • 如何在 VS 中键入时显示方法的完整文档?

    标题非常具有描述性 是否有任何扩展可以让我看到我正在输入的方法的完整文档 我想查看文档 因为我可以在对象浏览器中看到它 其中包含参数的描述和所有内容 而不仅仅是一些 摘要 当然可以选择查看所有覆盖 它可能是智能感知的一部分 或者我不知道它并
  • 为什么密码错误会导致“填充无效且无法删除”?

    我需要一些简单的字符串加密 所以我编写了以下代码 有很多 灵感 来自here http www codeproject com KB security DotNetCrypto aspx create and initialize a cr
  • C++11 函数局部静态 const 对象的线程安全初始化

    这个问题已在 C 98 上下文中提出 并在该上下文中得到回答 但没有明确说明有关 C 11 的内容 const some type create const thingy lock my lock some mutex static con
  • 单元测试失败,异常代码为 c0000005

    我正在尝试使用本机单元测试项目在 Visual Studios 2012 中创建单元测试 这是我的测试 TEST METHOD CalculationsRoundTests int result Calculations Round 1 0
  • 为什么 FTPWebRequest 或 WebRequest 通常不接受 /../ 路径?

    我正在尝试从 ftp Web 服务器自动执行一些上传 下载任务 当我通过客户端甚至通过 Firefox 连接到服务器时 为了访问我的目录 我必须指定如下路径 ftp ftpserver com AB00000 incoming files
  • 范围和临时初始化列表

    我试图将我认为是纯右值的内容传递到范围适配器闭包对象中 除非我将名称绑定到初始值设定项列表并使其成为左值 否则它不会编译 这里发生了什么 include
  • C# 创建数组的数组

    我正在尝试创建一个将使用重复数据的数组数组 如下所示 int list1 new int 4 1 2 3 4 int list2 new int 4 5 6 7 8 int list3 new int 4 1 3 2 1 int list4
  • C# 编译器如何决定发出可重定向的程序集引用?

    NET Compact Framework 引入了可重定向程序集引用 现在用于支持可移植类库 基本上 编译器会发出以下 MSIL assembly extern retargetable mscorlib publickeytoken 7C
  • std::bind 重载解析

    下面的代码工作正常 include
  • C# using 语句、SQL 和 SqlConnection

    使用 using 语句 C SQL 可以吗 private static void CreateCommand string queryString string connectionString using SqlConnection c
  • 运行代码首先迁移更新数据库时出错

    我在迁移到数据库时遇到问题 并且似乎找不到我遇到的错误的答案 System MissingMethodException Method not found System Data Entity Migrations Builders Tab
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • 以编程方式使用自定义元素创建网格

    我正在尝试以编程方式创建一个网格 并将自定义控件作为子项附加到网格中 作为 2x2 矩阵中的第 0 行第 0 列 为了让事情变得更棘手 我使用了 MVVM 设计模式 下面是一些代码可以帮助大家理解这个想法 应用程序 xaml cs base
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12
  • 如何确定母版页中正在显示哪个子页?

    我正在母版页上编写代码 我需要知道正在显示哪个子 内容 页面 我怎样才能以编程方式做到这一点 我用这个 string pageName this ContentPlaceHolder1 Page GetType FullName 它以 AS

随机推荐

  • 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 一般来说 定义会为对象分配存储空间 但是 函数声明也是如此吗 另外在这种情