GCC是否会将变量更好地视为不同的类型

时间:2017-09-01 13:59:25

标签: c gcc

例如,如果我声明int num = 7;并且仅以它可能具有的方式使用它并且应该已经声明const char num = 7;,因为char使用的内存少于int,gcc会优化它还是甚至不重要,因为它将被转换为组装?我意识到在这种情况下,变量将被完全优化,但是有没有一个场景,gcc决定变量作为一个不同的类型更好?

1 个答案:

答案 0 :(得分:4)

如果程序的副作用没有可观察到的差异,那么编译器有权做出它喜欢的任何优化。 7可能永远不会出现在生成的代码中(例如,如果仅在n+3等表达式中使用它),如果您从未使用其地址,则不需要任何存储空间。