首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

函数名与宏定义的重名的有关问题

2012-09-13 
函数名与宏定义的重名的问题现在库1有一个函数,名称:function_name而库2有一个宏定义:#if _UNICODE#define

函数名与宏定义的重名的问题
现在库1有一个函数,名称:function_name

而库2有一个宏定义:
#if _UNICODE
#define function_name function_nameW
#else
#define function_name function_nameA

库1的function_name和库2的function_nameW/A, 完全是两码事。

现在我库1和库2都想用,调用库1的function_name时候该怎么办?

前提,库1的函数名和库2的宏定义都不能改,因为两者各自的库,都有其它模块对他们的调用。

[解决办法]
参考c++的定义

#ifdef UNICODE
#define CreateFile CreateFileW
#else
#define CreateFile CreateFileA
[解决办法]
在函数名前加个命名空间可以么
[解决办法]
宏只在当前文件起作用... 如果两个文件没有交叉 #include 则没有关系...

// 如果是带参宏 与 函数名冲突则可用 (函数名)(..) 来调用函数
[解决办法]
看不懂,没有接触过这么深的东西
[解决办法]

探讨

能否这样:

#define f_name function_name
#undefine function_name

调用库1的function_name

#define function_name f_name

热点排行