Если кто-то включит весь файл в декларацию объединения, это позволит ему получить доступ к различным частям.
Это было бы что-то вроде:
union{
#include <param.h>
} myparam;
myparam.integ = 0xDEAD;
assert(myparam.lobyte == 0xAD)
assert(myparam.hibyte == 0xDE)
(зависит от порядкового номера архитектуры ...)
Итак, немного оглянувшись, кажется, что в старых версиях C вам не нужно было объявлять объединение; было только одно пространство имен для всех членов структуры / объединения, которые просто переводились в байтовое смещение, которое можно было использовать с любой переменной. Лучшее упоминание об этом я мог найти здесь:
http://docs.sun.com/source/806-3567/compat.html
Описание до ISO Sun C:
Позволяет структурам, объединениям и арифметическим типам использовать операторы выбора членов ('.', '->') для работы с членами других структур или объединений.