【问题标题】:How to give alias for a function in c [duplicate]如何在c中为函数提供别名[重复]
【发布时间】: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;

标签: c++ c visual-c++


【解决方案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++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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多