Использование союза
Союзы часто используются, когда нужны разговоры специального типа.
Чтобы получить представление о полезности объединения. Стандартная библиотека c / c не определяет функции, специально предназначенные для записи коротких целых чисел в файл. Использование fwrite () влечет за собой чрезмерные издержки для простой операции. Однако, используя объединение, вы можете легко создать функцию, которая записывает двоичный файл с коротким целым числом в файл по одному байту за раз. Я предполагаю, что короткие целые числа имеют длину 2 байта
ПРИМЕР:
#include<stdio.h>
union pw {
short int i;
char ch[2];
};
int putw(short int num, FILE *fp);
int main (void)
{
FILE *fp;
fp fopen("test.tmp", "wb ");
putw(1000, fp); /* write the value 1000 as an integer*/
fclose(fp);
return 0;
}
int putw(short int num, FILE *fp)
{
pw word;
word.i = num;
putc(word.c[0] , fp);
return putc(word.c[1] , fp);
}
хотя putw () я вызывал с коротким целым числом, было возможно использовать putc () и fwrite (). Но я хотел показать пример того, как можно использовать профсоюз