别名而不是糖语法的新变量

时间:2012-05-28 00:17:16

标签: c++ c-preprocessor syntactic-sugar

考虑char firstLetter=word[0];,除了将firstLetter用作可读性的糖之外,你不对#define做任何事情。是否有{{1}}以外的其他内容可以制作内联"别名"而不是分配新的内存?我意识到可以写一个脚本但是如果已存在某些东西......

2 个答案:

答案 0 :(得分:1)

这里没有内存分配; word[0]的值可以复制到寄存器或堆栈中,但是由编译器决定是否需要这样做。

请注意,“内联别名”会导致生成更糟糕的代码;表达式word[n]意味着一些计算,如果你使用某种替换,它将重复多次。

答案 1 :(得分:0)

如果关于C ++的问题确实 ,您可以随时为该对象创建别名:

char& firstLetter=word[0];

这将使firstLetterword[0]的别名(假设word是一个数组,而不是稍后更改的指针)。