From -5326682793945032984
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: f78e5,ea96cc047f6a22cc
X-Google-Attributes: gidf78e5,public
X-Google-ArrivalTime: 2001-08-10 14:31:01 PST
Path: archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!news.tele.dk!small.news.tele.dk!212.74.64.35!colt.net!dispose.news.demon.net!news.demon.co.uk!demon!mail2news.demon.co.uk!not-for-mail
From: Francis Glassborow <francis.glassborow@ntlworld.com>
Newsgroups: comp.std.c++
Subject: Re: extern "C" -- what is the intent?
Date: Fri, 10 Aug 2001 21:30:17 GMT
Organization: Southfield Microcomputer SS
Approved: Fergus Henderson <fjh@cs.mu.oz.au>, moderator of comp.std.c++
Message-ID: <tz7uwdBcjAd7Ewb7@ntlworld.com>
References: <090820010209154805%BobbySchmidt@mac.com>
 <3B733FA0.EFE7F4D5@wizard.net>
Reply-To: Francis Glassborow <francisG@robinton.demon.co.uk>
X-Trace: mail2news.demon.co.uk 997479023 mail2news:10208 mail2news mail2news.demon.co.uk
X-Complaints-To: abuse@demon.net
X-Mail2News-Path: news.demon.net!mulga.cs.mu.oz.au
X-Authentication-Warning: mulga.cs.mu.OZ.AU: fjh set sender to devnull@stump.algebra.com using -f
X-Robomod: STUMP, ichudov@algebra.com (Igor Chudov)
MIME-Version: 1.0
X-Newsreader: Turnpike Integrated Version 5.00 U <TilyaeicE$WmMOP9F8P4$y3lmP>
Lines: 27
Xref: archiver1.google.com comp.std.c++:6932

In article <3B733FA0.EFE7F4D5@wizard.net>, James Russell Kuyper Jr.
<kuyper@wizard.net> writes
>It works the other way too; a
>name of a function or object defined in C++ can be used from C code, if
>the C++ definition declares it with C language linkage.

And (and this is very important) the C compiler has a compaitble calling
sequence (most C compilers use the same one, but I do know ones that do
not, for example TopSpeed C - one of the very first compilers to get
full validation in the UK as ISO compliant) used name mangling to ensure
type safe linkage (and I believe this is allowed, just not required in
C). There is also the requirement for compatible types. A C++ compiler
that uses a 32-bit int will not work correctly with a C compiler that
happens to use a 16-bit int. (and, of course the same problem exists
between C compilers)

Francis Glassborow      ACCU
64 Southfield Rd
Oxford OX4 1PA          +44(0)1865 246490
All opinions are mine and do not represent those of any organisation

---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.research.att.com/~austern/csc/faq.html                ]



