The predefined types can be aggregated and extended into custom types.
Custom value types are declared with the struct or enum keyword. Likewise, custom reference types are declared with the class keyword.
The built in data type are unable to change,because they are specific to Language architecture , every language have different variable allocation size like in C language int size 2 bytes , in c# 4 bytes.
There is way to defined the custom data types according to requirement .
A good way to create a custom values type use the following link this elaborate the solution.
http://www.stephenchu.com/2006/02/go...alue-type.html