Revision history for KeyPgExtern


Revision [24272]

Last edited on 2020-08-12 02:38:07 by fxm [added information on its use]
Additions:
Declares ##//symbolname//## as an external name, meaning it is global to external modules including those to be compiled as static libraries, but not those to be compiled as dynamic libraries (DLLs). ##**Extern**## only declares variables, arrays and objects, and does not define them (different from ##[[KeyPgCommon|Common]]## or ##[[KeyPgDim|Dim]]##). It also has the effect of making ##//symbolname//## a //shared// name, meaning it is visible within procedures (see ##[[KeyPgShared|Shared]]##). A ##//symbolname//## declared as external name can be (re)defined (using Dim or Redim) only in a single external module.
##**Extern**## was added in order to support the C libraries.
Deletions:
Declares ##//symbolname//## as an external name, meaning it is global to external modules. ##**Extern**## only declares variables, arrays and objects, and does not define them (different from ##[[KeyPgCommon|Common]]## or ##[[KeyPgDim|Dim]]##). It also has the effect of making ##//symbolname//## a //shared// name, meaning it is visible within procedures (see ##[[KeyPgShared|Shared]]##). A ##//symbolname//## declared as external name can be (re)defined (using Dim or Redim) only in a single external module.


Revision [22628]

Edited on 2019-03-11 20:39:55 by JeffMarshall [add links to alias]
Additions:
- ##[[KeyPgAlias|Alias (Name)]]##
- ##[[KeyPgAliasModifier|Alias (Modifier)]]##


Revision [20921]

Edited on 2016-03-13 00:43:36 by fxm [Formatting]

No Differences

Revision [20234]

Edited on 2016-02-10 16:00:15 by DkLwikki [Update link format]
Additions:
**Extern** [ [[KeyPgImport|Import]] ] //symbolname//[ (//subscripts//) ] [ [[KeyPgAlias|Alias]] "//aliasname//" ] [[KeyPgAs|as]] //[[DataType|DataType]]// [, ...]
Declares ##//symbolname//## as an external name, meaning it is global to external modules. ##**Extern**## only declares variables, arrays and objects, and does not define them (different from ##[[KeyPgCommon|Common]]## or ##[[KeyPgDim|Dim]]##). It also has the effect of making ##//symbolname//## a //shared// name, meaning it is visible within procedures (see ##[[KeyPgShared|Shared]]##). A ##//symbolname//## declared as external name can be (re)defined (using Dim or Redim) only in a single external module.
If ##[[KeyPgAlias|Alias]]## is used, ##//aliasname//## will be used as the external name rather than ##//symbolname//##, and its case will be preserved.
If ##[[KeyPgImport|Import]]## is used, the name will be added to the dynamic library import list so its address can be fixed at run-time.
- Not available in the //[[CompilerOptlang|-lang qb]]// dialect.
- ##[[KeyPgExternBlock|Extern...End Extern]]##
- ##[[KeyPgCommon|Common]]##
- ##[[KeyPgDim|Dim]]##
- ##[[KeyPgShared|Shared]]##
Deletions:
**Extern** [ [[KeyPgImport Import]] ] //symbolname//[ (//subscripts//) ] [ [[KeyPgAlias Alias]] "//aliasname//" ] [[KeyPgAs as]] //[[DataType DataType]]// [, ...]
Declares ##//symbolname//## as an external name, meaning it is global to external modules. ##**Extern**## only declares variables, arrays and objects, and does not define them (different from ##[[KeyPgCommon Common]]## or ##[[KeyPgDim Dim]]##). It also has the effect of making ##//symbolname//## a //shared// name, meaning it is visible within procedures (see ##[[KeyPgShared Shared]]##). A ##//symbolname//## declared as external name can be (re)defined (using Dim or Redim) only in a single external module.
If ##[[KeyPgAlias Alias]]## is used, ##//aliasname//## will be used as the external name rather than ##//symbolname//##, and its case will be preserved.
If ##[[KeyPgImport Import]]## is used, the name will be added to the dynamic library import list so its address can be fixed at run-time.
- Not available in the //[[CompilerOptlang -lang qb]]// dialect.
- ##[[KeyPgExternBlock Extern...End Extern]]##
- ##[[KeyPgCommon Common]]##
- ##[[KeyPgDim Dim]]##
- ##[[KeyPgShared Shared]]##


Revision [16208]

Edited on 2012-06-19 14:23:10 by FxMwikki [Symbol declared as external can be (re)defined (using Dim or Redim) only in a single external module]
Additions:
Declares ##//symbolname//## as an external name, meaning it is global to external modules. ##**Extern**## only declares variables, arrays and objects, and does not define them (different from ##[[KeyPgCommon Common]]## or ##[[KeyPgDim Dim]]##). It also has the effect of making ##//symbolname//## a //shared// name, meaning it is visible within procedures (see ##[[KeyPgShared Shared]]##). A ##//symbolname//## declared as external name can be (re)defined (using Dim or Redim) only in a single external module.
Deletions:
Declares ##//symbolname//## as an external name, meaning it is global to external modules. ##**Extern**## only declares variables, arrays and objects, and does not define them (different from ##[[KeyPgCommon Common]]## or ##[[KeyPgDim Dim]]##). It also has the effect of making ##//symbolname//## a //shared// name, meaning it is visible within procedures (see ##[[KeyPgShared Shared]]##).
A symbol declared as external name can be (re)defined (using Dim or Redim) only in a single external module.


Revision [16207]

Edited on 2012-06-19 14:16:03 by FxMwikki [Symbol declared as external name can be (re)defined (using Dim or Redim) only in a single external m]
Additions:
A symbol declared as external name can be (re)defined (using Dim or Redim) only in a single external module.


Revision [14344]

Edited on 2009-08-29 21:54:01 by CountingPine [Remove CamelCase links in "New to FreeBASIC"]
Additions:
- New to ""FreeBASIC""
Deletions:
- New to FreeBASIC


Revision [12319]

The oldest known version of this page was created on 2008-01-18 14:12:49 by JeffMarshall [Remove CamelCase links in "New to FreeBASIC"]
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki



sf.net phatcode