Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site brl-tgr.ARPA
Path: utzoo!linus!philabs!cmcl2!seismo!brl-tgr!ron
From: ron@brl-tgr.ARPA (Ron Natalie )
Newsgroups: net.lang.c
Subject: External Variable names in C.
Message-ID: <5189@brl-tgr.ARPA>
Date: Thu, 11-Oct-84 13:34:48 EDT
Article-I.D.: brl-tgr.5189
Posted: Thu Oct 11 13:34:48 1984
Date-Received: Fri, 12-Oct-84 06:08:10 EDT
Organization: Ballistics Research Lab
Lines: 22

Another approach is to declare C-externs as C-specific.  Then make them
eight characters significant like non-externals are now.  To use things
that are really external to "C" you could add a construct such as:

symdef	foo "FOO$BAR"

Where the external symbol name foo would actually use the symbol
FOO$BAR in the machine code.  Generally, one doesn't care about
what external C symbols look like (they all have _ in front of them
on all machines, right? wrong.).  It only comes when we try to use
C with some language outside of the C environment (typically assembler).
Frequently, there are symbols that you wish to use that you can't make
using normal C symbols.

This increases portability.  First, any external symbol that is only-C
and contstrained to whatever other standards that are made for C names
in general will be portable to all macines.  Second, if you need to
introduce a REAL external symbol, you can now do so in a portable way
my mapping it to a C symbol name that obeys the rules for all the rest
of the C symbols.

-Ron