9fans archive / 2000 / 08 / 5 /    prev next

From: "Douglas A. Gwyn" <gwyn@arl...>
Subject: Re: [9fans] Installing the updates
Date: Tue, 1 Aug 2000 08:53:27 GMT

rob pike wrote:
> Seriously, we deliberately refused to buy into that multiple
> inclusion dance, which is a hideous non-solution for the problem
> of undefined dependency order on #includes.  Why not use the
> occasion to clean up the code so you only include <stdio.h> once?

One doesn't always have that option; for example, a header file
might be part of somebody else's project on a machine far, far away.
/* imported.h */
#include <stdio.h> /* need FILE decl */
extern imp_read( FILE*, char *whatever );

Many developers take the approach that each interface header
should be self-contained, so that the user of the header doesn't
need to know anything about the details of the implementation of
that header.  Information hiding, you know.

Since the C standard definitely requires idempotency for the
standard headers (except <assert.h>), at least the APE headers
ought to conform, to ease the burden of importing non-native code.