当前位置:  开发笔记 > 编程语言 > 正文

相同功能的不同实现(c/c ++)

如何解决《相同功能的不同实现(c/c++)》经验,为你挑选了1个好方法。

是否可以为头文件中声明的相同函数提供2个(或更多)不同的实现?我举一个例子-假设我们有一个名为一个头文件common.h和2个名为源文件src1.csrc2.c.

COMMON.H

//lots of common function declarations implemented in some file common.c 
int func(int a, int b);

src1.c

#include "common.h"

int func(int a, int b)
{
    return a+b;
}

src2.c

#include "common.h"

int func(int a, int b)
{
    return a*b;
}

假设我希望每个源文件都使用其本地版本func().有可能这样做吗?



1> Mr. Llama..:

是的,但如果您尝试将主程序与两者联系起来src1,src2则会遇到错误,因为它不知道要使用哪个定义.
标头只是其他代码对象了解其他对象中可用内容的方法.将标题视为合同.预计合同将被填充一次,而不是零次或多次.如果您链接对阵双方src1src2,你已经基本上填补了int func(int a, int b);合同的两倍.

如果需要在具有相同签名的两个函数之间切换,则可以使用函数指针.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有