delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2001/04/30/12:03:36

X-Authentication-Warning: kendall.sfbr.org: jeffw set sender to jeffw AT darwin DOT sfbr DOT org using -f
Date: Mon, 30 Apr 2001 09:37:58 -0500
From: JT Williams <jeffw AT darwin DOT sfbr DOT org>
To: djgpp AT delorie DOT com
Subject: __DJGPP__ and MSDOS
Message-ID: <20010430093758.A5379@kendall.sfbr.org>
Mail-Followup-To: djgpp AT delorie DOT com
Mime-Version: 1.0
User-Agent: Mutt/1.2.5i
Reply-To: djgpp AT delorie DOT com

When are __DJGPP__ and __MSDOS__ guaranteed to be defined and valid for
#ifdef testing?

My experiments lead me to believe that __MSDOS__ is defined `immediately'
by the preprocessor (by virtue of using a gcc that was built for DOS),
but that __DJGPP__ is not defined until I #include a *system* header.

Therefore, in the following sequence

#include "foo.h"
#include <stdio.h>
[rest of code]

I can validly #ifdef __MSDOS__ inside "foo.h", but I have to wait until
_after_ <stdio.h> to validly #ifdef __DJGPP__?

Which would argue for always #include'ing system headers first, right?

-- 
TIA/jtw

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019