#include <stdio.h>
int main(void) {
int i;
scanf("%d", &i);
if(i != 30) { return(0); }
printf("i is equal to %d\n", i);
}
Похоже, что результирующая строка всегда будет "i равна 30", поэтому почему GCC не оптимизирует этот вызов для printf с вызовом puts()
или write()
, например?
(Только что проверил сгенерированную сборку с помощью gcc -O3
(версия 5.3.1) или в Godbolt Compiler Explorer)