Wiktionary
n. (context computing programming English) The circumvention of the system of data types in a programming language in order to achieve an effect that would be difficult or impossible to achieve within the bounds of the formal language.
Wikipedia
In computer science, type punning is a common term for any programming technique that subverts or circumvents the type system of a programming language in order to achieve an effect that would be difficult or impossible to achieve within the bounds of the formal language.
In C and C++, constructs such as type conversion and [[union (computer science)|union]] — C++ adds reinterpret_cast to this list — are provided in order to permit many kinds of type punning, although some kinds are not actually supported by the standard language.
In the Pascal programming language, the use of records with variants may be used to treat a particular data type in more than one manner, or in a manner not normally permitted.