diff options
author | Tobias Klauser <tklauser@distanz.ch> | 2008-01-27 11:37:44 +0100 |
---|---|---|
committer | Tobias Klauser <tklauser@xenon.tklauser.home> | 2008-01-27 11:37:44 +0100 |
commit | 7e0f021a9aec35fd8e6725e87e3313b101d26f5e (patch) | |
tree | b1cacc4b24393f517aeb4610e9e1021f954307a8 /reference/C/CONTRIB/OR_PRACTICAL_C/11_1.c |
Initial import (2.0.2-6)2.0.2-6
Diffstat (limited to 'reference/C/CONTRIB/OR_PRACTICAL_C/11_1.c')
-rw-r--r-- | reference/C/CONTRIB/OR_PRACTICAL_C/11_1.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/reference/C/CONTRIB/OR_PRACTICAL_C/11_1.c b/reference/C/CONTRIB/OR_PRACTICAL_C/11_1.c new file mode 100644 index 0000000..cc1ce51 --- /dev/null +++ b/reference/C/CONTRIB/OR_PRACTICAL_C/11_1.c @@ -0,0 +1,19 @@ +/* + * Define a variable to hold an integer or + * a real number (but not both) + */ +union value { + long int i_value; /* The real number */ + float f_value; /* The floating-point number */ +} data; +int i; /* Random integer */ +float f; /* Random floating-point number */ +main() +{ + data.f_value = 5.0; + data.i_value = 3; /* data.f_value overwritten */ + i = data.i_value; /* legal */ + f = data.f_value; /* not legal, will generate unexpected results */ + data.f_value = 5.5; /* put something in f_value/clobber i_value */ + i = data.i_value; /* not legal, will generate unexpected results */ +} |