Использование union только экономит ценные биты в ОЗУ? Или также дает прирост в скоросте воспроизведения программы?

Есть код по объединению:

#include <iostream>
using namespace std;

union MyUnion{
    short a;
    int b;
    long int c;
};

int main(){
    
    MyUnion U;

    U.a = 5;
    cout<< U.a << endl;
    U.b = 66;
    cout<< U.b << endl;
    U.c = 24;
    cout<< U.c << endl;
    cout<< U.a << endl;
    U.c = 24;
    cout<< U.c << endl;
    cout<< U.b << endl;
}

Использование union только экономит ценные биты в ОЗУ? Или также дает прирост в скоросте воспроизведения программы за счет сэкономленных битов ОЗУ или это только чисто теоретически, на самом деле нет разницы по скорости если число сэкомленных битов ОЗУ до 1% от общего потребления памяти?

И также второй вопрос, у меня компилятор DevC++ дает результат:

5 66 24 24 24 24

-------------------------------- Process exited after 0.3357 seconds with return value 0 Для продолжения нажмите любую клавишу . . .

Хотя по мануалам, в частности C++ на примерах. Практика, практика и только практика. Автор: Орленко, Евдокимов указано что после строки U.c = 24; у U.b должно быть дефолтное значение, хотя программа сохраняет последнее значение переменой U.c для U.a и U.b. Это специфика компилятора или новый стандарт плюсов?

И что по этому поводу можно почитать?


Ответы (0 шт):