假设我有一个头文件 abc.h
它定义了一个函数 foo()
.如何使用函数 foo()
在头文件中 abc.h
不使用#include<abc.h>
在我的程序中?
我可以想出以下解决方案
- 手动将头文件中的函数复制到程序中。但对于函数定义已预编译到目标文件的大多数情况,这将失败。因为在那种情况下,复制粘贴函数原型(prototype)不会有任何好处,因为无法解析对函数的未解析引用。
- 对于标准库,不要做任何事情,因为 IDE 可以解决这个问题。但这显然是未定义的行为,并且取决于 IDE。同样对于非标准库,它肯定会失败。
那么如何在不包含头文件的情况下使用头文件中的函数(不一定来自标准库)?
这是一个面试问题,所以它本质上是一个技巧性问题。没有实际用途。
最佳答案
我相信这里的关键词是头文件中的“定义”,而不仅仅是声明。 header 必须编译为一个对象。要使用它,您需要在源代码中“声明”该函数并链接到目标文件。
也就是说,我讨厌这样的面试问题,因为你永远无法确定这是否是他们想要的,因为在实践中,头脑正常的人不会这样做。
关于c - 如何在不包含 C 头文件的情况下使用头文件中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18753390/