如何为变量赋予别名

时间:2013-06-10 14:09:19

标签: c++ c

我想用不同的名称调用相同的变量,如何为其分配别名?

我是否坚持使用宏,比如

#DEFINE Variable Alias

总结:

  1. 我更喜欢在C
  2. 中应用它
  3. 我有一个信号,可以是多种类型的变量(温度,距离等)。
  4. 我想为该信号分配多个别名

  5. 我目前正在C中使用函数作为重命名方法。

    所以给定变量:int signal

    我会做以下

    int Temperature(){return signal;}
    

5 个答案:

答案 0 :(得分:21)

在C ++中为变量提供别名的方法是使用引用。例如,

int i = 42;

int& j = i;       // j is an alias for i
const int& k = j; // k is an alias for i. You cannot modify i via k.

答案 1 :(得分:8)

你说

int a, *b;
b = &a; // *b is now an alias of a

我喜欢把一个指针想象成一个东西,当你为它加注时给你一个变量,并且将&符号作为别名制作运算符。

答案 2 :(得分:4)

为什么不将它作为参数传递给函数并在函数参数中使用适当的名称?我认为#define不是一个好主意,因为它可能导致混淆。那是在C. 当然,您可以在C ++中使用别名。

答案 3 :(得分:4)

Eric Lippert回答的另一种选择:

int a;
int * const b = &a;

现在*ba相同,不能指向其他任何内容,编译器不会生成额外的代码来处理a*b,既不为指针预留空间。

答案 4 :(得分:1)

我认为#define不是为这个用例设计的。首先是因为它是一个预处理程序指令,它在程序编译之前处理。您失去了编译器提供有意义警告的机会,您最终可能会遇到难以修复的奇怪错误或警告。

指针似乎有效,但每次都需要使用*(取消引用运算符)这是危险的,更难阅读,如果你错过*,你可能会遇到分段错误或类似的内存错误。

尝试发布一些代码,我们可能会找到适合您需求的正确解决方案。