home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / lang / c / 12421 < prev    next >
Encoding:
Text File  |  1992-08-17  |  1.3 KB  |  39 lines

  1. Newsgroups: comp.lang.c
  2. Path: sparky!uunet!europa.asd.contel.com!darwin.sura.net!rsg1.er.usgs.gov!news.cs.indiana.edu!umn.edu!unet.umn.edu!fin
  3. From: fin@unet.umn.edu (Craig A. Finseth)
  4. Subject: Re: why does #define Ctrl(c) c&037 work ?
  5. Message-ID: <1992Aug17.143156.28313@news2.cis.umn.edu>
  6. Sender: news@news2.cis.umn.edu (Usenet News Administration)
  7. Nntp-Posting-Host: norge.unet.umn.edu
  8. Organization: University of Minnesota, Networking Services.
  9. References: <1992Aug12.133132.10723@Princeton.EDU> <BRANNON.92Aug12164222@stun4r.cs.caltech.edu> <1992Aug13.133959.21908@news2.cis.umn.edu> <1992Aug16.224049.23485@zooid.guild.org>
  10. Distribution: worrrld
  11. Date: Mon, 17 Aug 1992 14:31:56 GMT
  12. Lines: 25
  13.  
  14. In article <1992Aug16.224049.23485@zooid.guild.org>, Ross Ridge <ross@zooid.guild.org> writes:
  15. |> fin@unet.umn.edu (Craig A. Finseth) writes:
  16. |> >The "correct" macro should be:
  17. |> >#define Ctl(c) ((c)^'@')
  18. |> >Which works for all of the above, and ? too.
  19.  
  20. |> The macro is pretty bogus to begin with.  It only exists because
  21. |> it used to be:
  22. |>     #define Ctl(c) ('c'&037)
  23. |> While unportable and just as bogus, it was at least convienent.  eg:
  24. |>     char eof = Ctl(D);
  25. |> Otherwise you might as well just do:
  26. |>     #define CTL_A    '\001'
  27. |>     ...
  28. |>     #define ESC    '\033'
  29. |>     ...
  30.  
  31. Except, of course, if you are trying to do:
  32.  
  33.     int x = 'A';
  34.     int y;
  35.  
  36.     y = Ctl(x);
  37.  
  38. Craig
  39.