непостоянство и двойная путаница

int x = 2;
volatile int y = 2;

const int z = x/y;

int main(){
    int x = 2 + 3;

    double d = 7 / 3;
}

У меня есть три вопроса:

Во-первых, может ли компилятор вычислить значение 'z' в время компиляции в данном случае равно 1?

Во-вторых, я заметил, что компилятор не генерирует инструкции сборки для добавления 2 и 3 для инициализации x. Он напрямую инициализирует x с помощью 5. Можно ли сделать то же самое с 'd'?

В-третьих, есть ли какая-нибудь хорошая книга по этим двум концепциям? Любые цитаты из Стандарта были бы полезны (Стандартный документ кажется интересным, хотя и очень страшным)

7
задан Nivhus 2 October 2010 в 13:16
поделиться