我的代码中的*(&x)
是否与x
不同?或者编译器是否使它们成为同一个东西?
答案 0 :(得分:3)
GCC至少似乎为*(&x)
和x
生成相同的说明,假设x
类型不会超载&
和{{1}运营商。
答案 1 :(得分:3)
这无疑对可读性有帮助。
只要没有运算符重载,几乎可以肯定编译器会为这两者生成相同的代码。编译为程序集(-S
中的gcc
)以便自己查看。
答案 2 :(得分:1)
在我的代码中写这个*(& x)是否与x不同?
如果*
或/和&
是重载运算符,那么它们可能意味着不同的事情,否则*(&x)
和x
意味着相同的事情,在这种情况下,它会降低可读性,因此您不想写它。看到类似的主题:
希望有所帮助。