【发布时间】:2020-03-22 02:06:25
【问题描述】:
我的任务是使用 Pipes 创建一个 popen() 函数,我已经完成了。问题是该函数还必须命名为 popen,而不是 mypopen 或 popen2 等。
我正在寻找一个人来指导我如何实现这一目标。
目前我有一个头文件 popen.h 和另一个我创建的文件 popen.c。
popen.h 有
void popen(char *arr[]);
虽然 popen.c 有实际的 popen 函数代码(有效,只是在函数名称为 popen 时无效)。
目前,当我的函数被调用 popen 时,我在编译时遇到了先前的声明错误。
如何让编译器在我的和 stdio.h 版本这两个不同的 popen 函数之间进行选择。
【问题讨论】:
-
名字一样,那参数呢?它们也一样吗?
-
不,两个popens之间的参数不一样
-
如果您不符合标准接口,您将无法在代码中使用标准标头(例如
<stdio.h>)——这让您的生活变得极其复杂。如果接口不同,请使用不同的名称。如果你不这样做,你会迷惑所有人。 -
据我所知,这个功能叫做重载,我找到了this。希望对您有所帮助。