0

考虑一下,除了将其用作糖以提高可读性之外char firstLetter=word[0];,您什么也不做。firstLetter除此之外还有什么#define可以制作内联“别名”而不是分配新内存吗?我意识到可以编写一个脚本,但如果某些东西已经存在......

4

2 回答 2

1

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

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

于 2012-05-28T00:23:43.470 回答
0

如果问题真的关于 C++ 的,你总是可以为对象创建一个别名:

char& firstLetter=word[0];

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

于 2012-05-28T07:54:16.280 回答