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

Alias instead of new variable for sugar syntax

本文关键字:新变量 变量 语法 别名      更新时间:2023-10-16

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

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

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

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

char& firstLetter=word[0];

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