将函数包装在同一文件中

2024-02-09

我需要你的建议来包装我现有的功能。

我来自测试团队,我需要编写单元测试用例,所以我不想依赖原始定义,所以尝试编写我自己的定义。

以下是不应更改的源代码。

来源.c:

#include <stdio.h>
const char *getObjectName (int *anObject);

void func()
{
    int *p;
    getObjectName(p);
}

const char *getObjectName (int *anObject)
{
    printf("i am in original\n");
}

从上面的代码我想换行getObjectName()函数,以便我可以给出自己的定义。

我用谷歌搜索了很多并尝试了以下方法但没有成功:

  • 方法1.使用ld --wrap方法 https://stackoverflow.com/questions/43183060/how-to-wrap-existing-function-in-c
  • 方法2.使用-DINTERCEPT https://stackoverflow.com/a/617559/4665936
  • 方法3.使用函数指针 https://stackoverflow.com/a/617576/4665936

我无法使用上述 3 种方法,因为调用函数和被调用函数位于同一个文件中。

所以请建议我任何其他方法来编写我自己的定义getObjectName().


None

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

将函数包装在同一文件中 的相关文章

  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • 如何将 protobuf-net 与不可变值类型一起使用?

    假设我有一个像这样的不可变值类型 Serializable DataContract public struct MyValueType ISerializable private readonly int x private readon
  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • 当我们想要返回对象的引用时,为什么我们在赋值运算符中返回 *this 而通常(而不是 this)?

    我正在学习 C 和指针 我以为我理解了指针 直到我看到这个 一方面 asterix 运算符是解引用的 这意味着它返回值所指向的地址中的值 而与号 运算符则相反 它返回值存储的地址记忆 现在阅读有关赋值重载的内 容 它说 我们返回 this因
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • 是否有实用的理由使用“if (0 == p)”而不是“if (!p)”?

    我倾向于使用逻辑非运算符来编写 if 语句 if p some code 我周围的一些人倾向于使用显式比较 因此代码如下所示 if FOO p some code 其中 FOO 是其中之一false FALSE 0 0 0 NULL etc
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • C# HashSet 只读解决方法

    这是示例代码 static class Store private static List
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • 使用 C# 读取 Soap 消息

  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 不同类型指针之间的减法[重复]

    这个问题在这里已经有答案了 我试图找到两个变量之间的内存距离 具体来说 我需要找到 char 数组和 int 之间的距离 char data 5 int a 0 printf p n p n data 5 a long int distan
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • WebSocket安全连接自签名证书

    目标是一个与用户电脑上安装的 C 应用程序交换信息的 Web 应用程序 客户端应用程序是 websocket 服务器 浏览器是 websocket 客户端 最后 用户浏览器中的 websocket 客户端通过 Angular 持久创建 并且

随机推荐

  • Linux内核FIELD_SIZEOF宏解释

    我正在学习 c99 在阅读了结构之后 我在Linux内核代码 http lxr free electrons com source include linux kernel h a avr32 L53 define FIELD SIZEOF
  • 如何从 PHImageManager 获取方形缩略图?

    有人知道如何从 PHImageManager 获取方形拇指吗 PHImageContentModeAspectFill 选项无效 PHImageManager defaultManager requestImageForAsset PHAs
  • 如何从多维数组(没有循环)中获取单一类型的数组[重复]

    这个问题在这里已经有答案了 我有以下数组 foo array 10 0 gt array 4 merchantId gt string 5 12e21 programId gt string 27 ddd3333 networkId gt
  • 如何将 Composer 供应商文件夹提交到 Git 存储库?

    我可以设置吗 gitignore以这种方式允许 Composer 依赖项 供应商目录 存在于我的存储库中 作曲家正式建议您 不应该 这样做 它提供了三个原因 https getcomposer org doc faqs should i c
  • 显示当天的项目

    我希望创建一个函数 从 mySQL 表中获取随机项目 但让我将返回的项目保留为 当天的项目 换句话说 昨天是 当天的项目 的项目不应再次显示 直到所有其他项目都显示为当天的项目 关于如何以优雅的方式做到这一点有什么建议吗 Thanks 添加
  • 查询 INFORMATION_SCHEMA 时出现死锁

    我有一个进程可以根据已发布的元数据层的更改动态更改 SQL2K5 表结构 例如 如果需要添加新列并且表没有依赖项 步骤将是 1 使用 T SQL 为表中已存在的任何索引和主键创建脚本 这些脚本包含在下面 2 删除表 3 从具有新列的元层重新
  • 在 Swift 3 中将可选字符串转换为双精度

    我有一个选项字符串 想将其转换为双精度 这在 Swift 2 中有效 但自从转换为 Swift 3 后 我得到的值为 0 var dLati 0 0 dLati latitude as NSString doubleValue 我进行了检查
  • firestore规则路径的大小

    我试图在 firestore 规则中使用路径的大小 但无法让任何东西发挥作用 并且在 firestore 文档中找不到有关如何执行此操作的任何参考 我想使用最后一个集合名称作为规则中的参数 所以尝试了以下方法 match test docu
  • IBM Worklight 5.0.6 - 如何向 Android 环境添加启动屏幕?

    我在尝试在 Android 中添加启动屏幕时遇到问题 下面是我使用的代码 public void onCreate Bundle savedInstanceState super onCreate savedInstanceState su
  • T-SQL 将秒格式化为 HH:MM:SS 时间

    有没有什么棘手的方法来格式化秒 例如小时 分钟 秒 例如 3660 秒将显示为 01小时01分00秒 or 01 01 00 我知道执行此操作的标准方法 将所有秒除以 3600 即可得到小时 将剩余秒数除以 60 即可得到分钟 剩下的都是秒
  • 使用 PHP 函数自动向 标签添加宽度和高度属性

    我想要的是一个可以根据用户输入运行的函数 该函数将智能地查找并添加width and height任何属性 img HTML blob 中的标记 以避免图像加载时的页面重排问题 我正在为 PHP 论坛编写发布脚本 其中用户的输入在写入数据库
  • JQuery ajax 加载 XML,在 IE 或 Edge 中不起作用

    这是我目前拥有的 xml
  • 如何获取显示器序列号?

    有谁知道如何用 C 或 C 获取连接的显示器序列号 我找到了一些代码 但它们是用vbs编写的 我不明白 我需要一些用 C 或 C 编写的示例代码 我知道序列号是从 EDID 读取的 但不幸的是我不知道如何 有人可以帮助我吗 Thanks 更
  • 是否可以在无头模式下使用 JDT 加载 eclipse Java 项目?

    我有一个 Eclipse Java 项目 想要获取项目源目录 类路径等信息 我当前的实现解析 project文件 但由于我没有找到任何描述其结构的官方文档 project文件中 我对这种方法的稳健性有些担忧 一种更方便 更可靠的方法是使用
  • 智能指针。何时、何地以及如何?

    首先 由于智能指针有不同类型 我想将这个问题集中在其中两种 引用计数侵入式智能指针和非侵入式智能指针 针对每种指针类型单独询问该问题 我不太确定如何提出我的问题 所以这就是我不问的 我不是问为什么或何时需要智能指针 也不知道我应该使用哪种类
  • 如何在运行时修改我的 App.exe.config 键?

    在我的 app config 中我有这个部分
  • CRAN 包提交 - R CMD 检查

    我正在构建一个想要提交给 CRAN 的包 我完成了 R CMD 检查 使用 devtools check 并确保在构建我的包 devtools build 之前修复所有错误 警告和注释 然后将生成的 tar gz 文件提交到 CRAN 然而
  • 单元测试、黑盒测试和白盒测试[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 什么是单元测试 黑盒测试和白盒测试 我用谷歌搜索 但我发现的所有解释都非常技术性 任何人都可以用适当的例子以简单的方式回答这个问题吗
  • Laravel 4:如果帖子不存在,则使用控制器重定向页面 - 尝试过但到目前为止失败

    我正在使用 Laravel 4 我有一个显示帖子的页面 例如example com posts 1 显示数据库中的第一篇文章 我想要做的是 如果有人尝试访问不存在的网址 则将页面重定向到索引 例如如果没有帖子编号 6 则 example c
  • 将函数包装在同一文件中

    我需要你的建议来包装我现有的功能 我来自测试团队 我需要编写单元测试用例 所以我不想依赖原始定义 所以尝试编写我自己的定义 以下是不应更改的源代码 来源 c include