home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / lang / c / 11623 < prev    next >
Encoding:
Text File  |  1992-07-26  |  1.3 KB  |  44 lines

  1. Newsgroups: comp.lang.c
  2. Path: sparky!uunet!charon.amdahl.com!pacbell.com!mips!mips!munnari.oz.au!cs.mu.OZ.AU!munta.cs.mu.OZ.AU!fjh
  3. From: fjh@munta.cs.mu.OZ.AU (Fergus James HENDERSON)
  4. Subject: Re: initiaklizing union members
  5. Message-ID: <9220904.24599@mulga.cs.mu.OZ.AU>
  6. Sender: news@cs.mu.OZ.AU
  7. Organization: Computer Science, University of Melbourne, Australia
  8. References: <1708@toro.MTS.ML.COM> <5391@dsacg3.dsac.dla.mil> <24901@dog.ee.lbl.gov>
  9. Distribution: usa
  10. Date: Sun, 26 Jul 1992 18:09:46 GMT
  11. Lines: 31
  12.  
  13. torek@horse.ee.lbl.gov (Chris Torek) writes:
  14.  
  15. >If you have an ANSI C compiler, you can get away with this:
  16. >
  17. >    struct Row {
  18. >        int    Type;
  19. >        union {
  20. >            int    ival;
  21. >            char    *sval;
  22. >        } value;
  23. >    };
  24. >    struct Row_str {
  25. >        int    Type;
  26. >        union {
  27. >            char    *sval;
  28. >            int    ival;
  29. >        } value;
  30. >    };
  31. >    static Row r0 = { 0, 1234 };
  32. >    static Row_str r1_str = { 1, "string" };
  33. >    #define    r1 (*(struct Row *)&r1_str)
  34.  
  35. Isn't it the case that *technically*, to be sure that the definitions
  36. for Row and Row_str are are compatible, you have to define them in
  37. seperate compilation units?
  38.  
  39. -- 
  40. Fergus Henderson             fjh@munta.cs.mu.OZ.AU      
  41. This .signature VIRUS is a self-referential statement that is true - but 
  42. you will only be able to consistently believe it if you copy it to your own
  43. .signature file!
  44.