考虑char firstLetter=word[0];
,除了将firstLetter
用作可读性的糖之外,你不对#define
做任何事情。是否有{{1}}以外的其他内容可以制作内联"别名"而不是分配新的内存?我意识到可以写一个脚本但是如果已存在某些东西......
答案 0 :(得分:1)
这里没有内存分配; word[0]
的值可以复制到寄存器或堆栈中,但是由编译器决定是否需要这样做。
请注意,“内联别名”会导致生成更糟糕的代码;表达式word[n]
意味着一些计算,如果你使用某种替换,它将重复多次。
答案 1 :(得分:0)
如果关于C ++的问题确实 ,您可以随时为该对象创建别名:
char& firstLetter=word[0];
这将使firstLetter
和word[0]
的别名(假设word
是一个数组,而不是稍后更改的指针)。