例如,如果我声明 int num = 7;
,并且仅以某种方式使用它可以并且应该被声明为 const char num = 7;
,因为char使用的内存少于int,则会优化gcc或这样做甚至无关紧要,因为它将转换为组装?我意识到,在这种情况下,该变量将被完全优化,但是是否有一个场景,GCC决定变量更好地为另一种类型?
如果程序的副作用没有明显的差异,则编译器有权进行其喜欢的任何优化。7
可能永远不会出现在生成的代码中(例如,如果您仅在诸如n+3
之类的表达式中使用),并且如果您从不使用其地址,则不需要任何存储。