如何在c中为函数提供别名[重复]

Posted

技术标签:

【中文标题】如何在c中为函数提供别名[重复]【英文标题】:How to give alias for a function in c [duplicate] 【发布时间】:2016-12-05 07:00:21 【问题描述】:

问题是这样的:

我有一个名为ADD_TWO(int,int); 的函数,现在在程序中,我想创建它的别名,保持之前的函数不变。类似于ADD_TWO_NUMBERS(int,int);。即如果我调用ADD_TWO_NUMBERS,它应该执行ADD_TWO

我想为函数设置一个别名。

【问题讨论】:

为什么不创建ADD_TWO_NUMBERS 函数,它会调用ADD_TWO 你可以使用函数指针 int (*ADD_TWO_NUMBERS)(int,int) = ADD_TWO; 【参考方案1】:
int ADD_TWO(int a, int b)

    return a+b;


int main()

    int (*ADD_TWO_NUMBERS)(int, int) = ADD_TWO;
    int result = ADD_TWO_NUMBERS(10, 12);  //or (*ADD_TWO_NUMBERS)(10, 12)
    cout<<"  Result :- "<<result<<endl;
    return 0;

使用函数指针

【讨论】:

【参考方案2】:

除了使用函数指针,您还可以使用function-like macros。尝试类似

#define ADD_TWO_NUMBERS(x,y) ADD_TWO(x,y)

【讨论】:

函数指针更好,因为它们可以被赋予一个范围。 是的。没有什么比口臭的宏更糟糕的了。【参考方案3】:

因为这个问题有c++ 标签并且假设你使用的是c++11 编译器,那么:

int ADD_TWO(int a, int b)

    return a+b;


int main()

    auto ADD_TWO_NUMBERS = ADD_TWO;
    int result = ADD_TWO_NUMBERS(10, 12);
    cout << "  Result :- " << result << endl;
    return 0;

【讨论】:

以上是关于如何在c中为函数提供别名[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 java 中为 Servlet 上下文添加别名?

如何在查询中为 eloquent 模型起别名

在 Windows 7 中为 composer 创建一个工作别名

如何在 MySQL 中为数据库起别名?

如何在 Python 中为类型定义别名以进行类型提示

如何在 Vim 中为命令创建别名?