Выполняет ли LLVM простую арифметику перед компиляцией?

#objective-c #xcode #compiler-construction #llvm

#objective-c #xcode #построение компилятора #llvm

Вопрос:

Я часто вижу в коде такие вещи, как 60*60 вместо 3600 . Они оба компилируются для одной и той же вещи? Т.Е. заменяет ли предварительный компилятор 60 * 60 на 3600 для вас?

Ответ №1:

Да, константные выражения вычисляются во время компиляции.

Ответ №2:

Чтобы быть абсолютно корректным, это не требуется, но большинство компиляторов делают это. Прочитайте о постоянном сворачивании.

Комментарии:

1. Однако вопрос касался конкретной реализации.

2. 1 за ссылку и соответствующую фразу, используемые в реализации компилятора.

3. @MichaelKrelin-хакер, я соглашаюсь. я подумал о добавлении названия метода.

4. @alvin, с моей стороны возражений нет 😉