Extern Syntax

BlitzMax Forums/BlitzMax Programming/Extern Syntax

Otus(Posted 2008) [#1]
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!


ChristianK(Posted 2008) [#2]
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


Who was John Galt?(Posted 2008) [#3]
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


Otus(Posted 2008) [#4]
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!