Именно. Когда создаете юнион, Вы говорите компилятору занять участок памяти размером с бОльший элемент юниона, к которому можно обращаться, как к любому из элементов юниона. Когда Вы делаете принудительное приведение типов, Вы говорите компилятору, что в этом месте нужно обратиться к переменной типа x, как к переменной типа y. ИМХО юнион удобнее, хотя запись и получается немного длиннее.