Extern Syntax

BlitzMax Forums/BlitzMax Programming/Extern Syntax

Looking at some of the module sources, there's a lot undocumented about Externs. I'm looking at pub.stdc and wondering what the following mean:

1. Extern "c" - The docs say nothing about Extern taking an argument. What meaning does the "c" have? What others can be used?

2. str$z - Am I correct in assuming $z is a type tag? What type does it correspond to?

3. Extern Consts - How does an external constant differ from one outside an Extern block?

Thanks!

1. The argument after Extern tells the linker what libraries it should include to resolve external references.
"C" -> Standard C-Libraries
"Win32" -> Windows Subsystem ( user32, kernel32, ... )
...

2. Yes, it's a type tag.
$z -> C-String
$w -> Unicode String

The extern extras tell the compiler what the calling conventions are for the given functions,.

A bit of interest reading, not particularly relevant to your Blitz knowledge-
http://en.wikipedia.org/wiki/X86_calling_conventions

1. The argument after Extern tells the linker what libraries it should include to resolve external references.
"C" -> Standard C-Libraries
"Win32" -> Windows Subsystem ( user32, kernel32, ... )
...

2. Yes, it's a type tag.
$z -> C-String
$w -> Unicode String



Thanks!