🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.unix.programmer
Article #3645

#ifndef/#ifdef problems in my header file (conditional header inclusion)

#3645
From: Mauricio Tavares
Date: Tue, 24 Dec 1996 00:00
30 lines
2679 bytes
        I am finding some very interesting behavior from #define and
#ifndef/#ifdef.  Let's say that I have a header file called MyHeader.h.  This
file is included by all my routines (they usually are in separate files).  Now
that would not be very nice since it would include the very same include files
(stdio.h and others) over and over again.  So, I thought if I use something
like

#ifndef MOOSE
#define MOOSE
#include <stdio.h>
#include <X11/Xlib.h>
#endif

the code would only include *one* copy of these two include files.  What I am
finding out is that is not the case.  Running C programs that have similar 
conditional including of header files in gcc (Sparc), Think C (Mac), Borland
TC++ 3.1 for Windows (PC), and SAS/C (Amiga) results in the same thing.  It
really seems that the compiler simply *forgets* what was defined in the
previous .c file and define them all over again.  As a result, my object files
become unnecessarily large.  Yes, the executable seems to take care of that,
but still I am using more disk space than I should.  I am open for suggestions
as usual.

-- 
 ===========================+=======================================
| Mauricio Tavares          | "We will attack...                    |
| raub@kushana.aero.ufl.edu |  ...under the cover of daylight!"     |
|                           |                                Rimmer |
 ===========================+=======================================
Technical Details
Message-ID: <gnusenetraub-2412960039190001@dialup52.afn.org>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: 11318c,157ed6c64d1aa006,start
X-Google-Attributes: gid11318c,public
X-Google-Thread: fc89c,8f16387167a7efa5
X-Google-Attributes: gidfc89c,public
X-Google-Thread: 101ec9,8f16387167a7efa5
X-Google-Attributes: gid101ec9,public
X-Google-Thread: 1014db,8f16387167a7efa5
X-Google-Attributes: gid1014db,public
X-Google-Thread: ffc26,8f16387167a7efa5
X-Google-Attributes: gidffc26,public
X-Google-Thread: 105df1,8f16387167a7efa5
X-Google-Attributes: gid105df1,public
From: Mauricio Tavares <raub@kushana.aero.ufl.edu>
Subject: #ifndef/#ifdef problems in my header file (conditional header inclusion)
Date: 1996/12/24
Message-ID: <gnusenetraub-2412960039190001@dialup52.afn.org>
X-Deja-AN: 205838310
distribution: world
to: gnu-gcc-announce@rutgers.edu
followup-to: comp.unix.programmer,gnu.gcc.help,comp.lang.c,comp.sys.mac.programmer.help,comp.os.ms-windows.programmer.misc,comp.sys.amiga.programmer
source-info: From (or Sender) name not authenticated.
organization: Mostly Harmless
newsgroups: comp.unix.programmer,gnu.gcc.help,comp.lang.c,comp.sys.mac.programmer.help,comp.os.ms-windows.programmer.misc,comp.sys.amiga.programmer