注意:之前的“point_forward”隐式声明在这里

2024-02-28

我似乎无法正确编译这个递归函数,我也不知道为什么。 代码如下:

void point_forward (mem_ptr m) {
  mem_ptr temp;
  temp = m->next;
  if (temp->next != NULL) point_forward(temp);
  m->next = temp->next;
}

我的编译器返回这个:

mm.c:134:6:警告:“point_forward”的类型冲突[默认启用]
mm.c:96:2:注意:之前的“point_forward”隐式声明在这里


关键就在这:

以前的隐式声明“point_forward”的位置在这里

在第 96 行你有:

point_forward(m); // where m is a mem_ptr;

由于编译器还没有看到函数声明point_forward(m),它“隐式定义”(即假设)一个返回 int 的函数:

int point_forward(mem_ptr m);

这与后面的定义相冲突:

void point_forward (mem_ptr m) {

要解决此问题,您可以:

  1. 在第 96 行之前放置一个显式声明:void point_forward(mem_ptr m);这将告诉编译器如何处理point_forward()当它在第 96 行看到它时,即使它还没有看到函数实现。

  2. 或者,在第 96 行上方定义整个函数(将函数定义从第 134 行向前移动到第 96 行上方)。

这里有一点点有关声明函数的更多信息 http://opencbp.sourceforge.net/en_US.ISO8859-1/books/opencbook/func.prototypes.html.

一般来说,对于风格,我会:

  • 如果你不想使用point_forward()在任何其他 C 文件中,完整定义它:

    static void point_forward(mem_ptr m) { ..function body goes here.. }

    在源文件的顶部。

  • 如果你想使用point_forward()在其他C文件中,提出前向声明:

    void point_forward(mem_ptr m);
    

    在头文件中以供其他文件包含。

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

注意:之前的“point_forward”隐式声明在这里 的相关文章

  • 检查空参数的最佳方法(保护子句)

    例如 您通常不希望构造函数中的参数为空 因此看到类似的内容是很正常的 if someArg null throw new ArgumentNullException nameof someArg if otherArg null throw
  • C 中的变量定义是什么意思[重复]

    这个问题在这里已经有答案了 你们能告诉我 这在 C 中意味着什么吗 define Privileged Data Privileged Data static int dVariable 编译器对变量进行寻址有特殊意义吗 这只是一个宏Pri
  • 扫描文本文件时如何跳过行?

    我想扫描一个文件并在阅读之前跳过一行文本 我试过 fscanf pointer n struct test i j 但这个语法只是从第一行开始 我可以使用 scanf 使用以下指令跳过行 fscanf config file n n 格式字
  • 切换图片框可见性 C#

    为什么图片框控件的可见性属性在这里不起作用 我最初将它们设置为 false 以便在屏幕加载时它们不可见 但后来我想切换这个 我已完成以下操作 但似乎不起作用 这是一个 Windows 窗体应用程序 private void Action w
  • 通过单个 GPIO 引脚转储闪存

    我正在使用 Infineon 的 XMC4500 Relax Kit 并尝试通过单个 GPIO 引脚提取固件 我非常天真的想法是通过 GPIO 引脚一次转储一位 然后用逻辑分析仪以某种方式 嗅探 数据 伪代码 while word by w
  • 通过引用传递时取消引用指针

    当通过引用传递给函数时取消引用指针时会发生什么 这是一个简单的例子 int returnSame int example return example int main int inum 3 int pinum inum std cout
  • 为什么假设 send 可能返回的数据少于在阻塞套接字上传输的请求数据?

    在流套接字上发送数据的标准方法始终是调用 send 并写入一大块数据 检查返回值以查看是否发送了所有数据 然后再次调用 send 直到整个消息被接受 例如 这是一个常见方案的简单示例 int send all int sock unsign
  • 如何将字节块读入结构体

    我有一个需要处理的资源文件 它包含一组文件 首先 资源文件列出了其中包含的所有文件 以及一些其他数据 例如在此结构中 struct FileEntry byte Value1 char Filename 12 byte Value2 byt
  • 在通过网络发送之前压缩位图

    我正在尝试通过网络发送位图屏幕截图 因此我需要在发送之前对其进行压缩 有一个库或方法可以做到这一点吗 当您将图像保存到流时 您have选择一种格式 几乎所有位图格式 bmp gif jpg png 都使用一种或多种压缩形式 因此 只需选择适
  • 使用反射获取基类的受保护属性值

    I would like to know if it is possible to access the value of the ConfigurationId property which is located in the base
  • 特定设备的不同字体大小

    我目前正在开发通用应用程序 我需要分别处理移动设备和桌面的文本框字体大小 我找到了一些方法 但都不能解决问题 使用 VisualStateManager 和 StateTrigger 为例
  • 抽象类或接口。哪种方式是正确的?

    有两种方法可以选择抽象类或接口 微软解决方案和Oracle解决方案 微软 设计指南 请使用抽象 在 Visual Basic 中为 MustInherit 类而不是接口来将协定与实现分离 http msdn microsoft com en
  • 数据损坏 C++ 和 Python 之间的管道

    我正在编写一些代码 从 Python 获取二进制数据 将其通过管道传输到 C 对数据进行一些处理 在本例中计算互信息度量 然后将结果通过管道传输回 Python 在测试时 我发现如果我发送的数据是一组尺寸小于 1500 X 1500 的 2
  • 如何在 C# 中使用 XmlDsigC14NTransform 类

    我正在尝试使用规范化 xml 节点System Security Cryptography Xml XMLDsigC14nTransformC net Framework 2 0 的类 该实例需要三种不同的输入类型 NodeList Str
  • Dynamics Crm:获取状态代码/状态代码映射的元数据

    在 Dynamics CRM 2011 中 在事件实体上 状态原因 选项集 也称为状态代码 与 状态 选项集 也称为状态代码 相关 例如看这个截图 当我使用 API 检索状态原因选项集时 如下所示 RetrieveAttributeRequ
  • 将 bignum 类型结构转换为人类可读字符串的有效方法是什么?

    我有一点问题 为了增长我的 C 知识 我决定尝试实现一个基本的 bigint 库 bigint 结构的核心将是一个 32 位整数数组 选择它们是因为它们适合寄存器 这将允许我在数字之间进行操作 这些操作将在 64 位整数中溢出 这也将适合寄
  • 为什么C语言中可以使用多个分号?

    在 C 中我可以执行以下操作 int main printf HELLO WORLD 它有效 这是为什么 我个人的想法 分号是一个 NO OPERATION 来自维基百科 指示符 拥有一大串分号与拥有一个分号并告诉 C 语句已结束具有相同的
  • 如何将 CSV 文件读入 .NET 数据表

    如何将 CSV 文件加载到System Data DataTable 根据CSV文件创建数据表 常规 ADO net 功能是否允许这样做 我一直在使用OleDb提供者 但是 如果您正在读取具有数值的行 但希望将它们视为文本 则会出现问题 但
  • 通过 cmake 链接作为外部项目包含的 opencv 库[重复]

    这个问题在这里已经有答案了 我对 cmake 比较陌生 经过几天的努力无法弄清楚以下事情 我有一个依赖于 opencv 的项目 它本身就是一个 cmake 项目 我想静态链接 opencv 库 我正在做的是我的项目中有一份 opencv 源
  • 如何确定给定方法可以抛出哪些异常?

    我的问题和这个真的一样 找出 C 中方法可能抛出的异常 https stackoverflow com questions 264747 finding out what exceptions a method might throw in

随机推荐

  • Express 中跨子域的会话

    我正在使用 Express 中的 vhost 功能和 Node 来管理我的应用程序的多个子域 该应用程序使用相同的会话密钥和密钥 并且我相信我已经使用了正确的会话 cookie 设置 cookie path domain example c
  • 如何在 Azure AD B2C 中存储来自 IdentityServer 3 的声明或仅将其包含在 AAD B2C 颁发的令牌中

    我想知道是否可以将 oid 声明或基本上由 Identity Server 3 发出的任何其他声明传播到 AAD B2C 并使其成为 Azure AD B2C 发出的令牌的一部分 我们需要在客户端拥有一个原始 ID 而我们从 sub 和 o
  • 没有框架的javascript ajax请求

    有谁知道如何在不使用 jQuery 等 javascript 框架的情况下制作跨浏览器的 ajax 请求功能 The XMLHttpRequest对象实际上使用起来并不那么复杂 为了广泛兼容 您必须玩一些游戏来创建对象 但之后的简单操作就相
  • 如何在浏览器窗口调整大小时调整CSS中的梯形大小

    当我调整浏览器窗口大小时 我试图调整梯形形状的大小 我试图通过使用来做到这一点box resize但还是没用 是否可以通过使用定义 创建的梯形来做到这一点border黑客 还有什么其他方法可以使梯形能够在调整浏览器窗口大小时调整大小 div
  • Codeigniter - 提交后验证失败时重新填充表单

    我有一个表单 要求用户输入一些信息 如果他们未能填写必填字段 他们将被重新提交表格 页面顶部通知他们需要哪些字段 并且我启用了粘性表单 set value 这样他们的输入就不会丢失 我使用 flashdata 向用户显示消息 即 如果他们输
  • 从 listWidget 中删除选定的项目

    如何从列表中删除选定的项目QListWidget 我尝试编写以下代码 但它不起作用 QList
  • 使用 Moya 获取响应标头

    我在我的 swift 应用程序中使用 Moya 来处理网络请求 我能够使用 Moya Object Mapper 获取请求并映射结果 我之前使用过 alamofire 熟悉如何发布 获取请求和读取响应头 然而 我似乎不明白如何在 Moya
  • Ag-grid 捆绑包尺寸太大

    我正在使用 Angular 6 开发一个 Web 应用程序 我有一个 Ag grid 企业版 Ag grid 文档说 我们必须导入所有农业网格角 农业网格社区 and 农业电网企业与农网企业合作 编译后 主包总大小超过 1 5 MB 在那里
  • Firebase 函数问题以及 .add() 与 .doc().set() 之间的区别

    几周以来我遇到了以下问题 以前不是问题 1 添加 数据 const saveNewDoc functions https onCall data NewDocWrite context CallableContext gt return a
  • 两个类之间的递归java泛型

    这是一个类似于中提出的问题两个类之间可能递归的 Java 泛型 https stackoverflow com questions 5929689 possibly recursive java generics between two c
  • 从派生类初始化列表调用基类构造函数的顺序

    struct B int b1 b2 B int int struct D B int d1 d2 which is technically better D int i int j int k int l B i j d1 k d2 l
  • AttributeError:“模块”对象没有属性“get_frontal_face_ detector”

    我试图使用 python 的 dlib 库来检测面部标志 我正在使用上面给出的例子人脸检测器 http dlib net face landmark detection py html 我在安装dlib之前已经安装了所有依赖项 首先 我使用
  • Joomla 2.5创建组件并保存数据

    我一直在使用这个文档 我在网上可以找到的唯一文档 来构建一个组件 http docs joomla org Developing a Model View Controller Component 2 5 Introduction http
  • 为什么 awk 似乎随机化数组?

    如果你看一下这个的输出awk测试一下 你会看到array in awk似乎是按某种随机图案打印的 对于相同数量的输入 它似乎具有相同的顺序 为什么会这样呢 echo one two three four five six awk for i
  • Windows 服务中线程内的计时器

    我不知道如何以最佳方式解决这个问题 现在我有一个 Windows 服务 其唯一任务是从具有特定 DSN 的数据库收集数据 然后在数据有效时发送电子邮件 该服务包含一个计时器 每 5 分钟滴答一次并执行上述任务 现在我需要重新编写Window
  • 如何在 d3 javascript 中为 SVG 文本元素分配唯一 id

    在 d3 中制作条形图 我有 30 多个条形图 x 轴上有 30 多个相应标签 我希望在页面加载时隐藏 x 轴标签 这是有效的 并且仅当用户将光标悬停在相应的栏 svg 矩形对象 上时才出现 为此 我为每个矩形和每个文本元素分配一个 id
  • 使用最小起订量的扩展方法的单元测试

    我正在为 azuresearch 的函数 uploaddocuments 编写单元测试 Unsupported expression gt Index It IsAny
  • 在 Perl 中获取堆栈跟踪? [复制]

    这个问题在这里已经有答案了 如何在 Perl 中获取堆栈跟踪 对于调试需要 我喜欢鲤鱼 永远 http search cpan org dist Carp Always perl MCarp Always my script pl
  • 有没有办法在不执行脚本的情况下测试 PowerShell 脚本中的函数?

    我想定义独立的我的 PowerShell 脚本中的函数 并且能够在不执行脚本其余部分的情况下对函数进行 Pester 测试 有什么办法可以做到这一点而不需要在单独的文件中定义函数吗 在下面的伪代码示例中 如何在不执行 main 功能的情况下
  • 注意:之前的“point_forward”隐式声明在这里

    我似乎无法正确编译这个递归函数 我也不知道为什么 代码如下 void point forward mem ptr m mem ptr temp temp m gt next if temp gt next NULL point forwar