GLOBAL is the other
EXTERN: if one module declares a symbol as
EXTERN and refers to it, then in order to prevent linker
errors, some other module must actually define the
symbol and declare it as
GLOBAL. Some assemblers use the
PUBLIC for this purpose.
GLOBAL directive applying to a symbol must appear
before the definition of the symbol.
GLOBAL uses the same syntax as
EXTERN, except that it must refer to symbols which are defined in the same module as the
GLOBAL directive. For example:
global _main _main: ; some code
object formats to define private extensions by means of a colon. The
elf object format, for example, lets you specify whether global data
items are functions or data:
global hashlookup:function, hashtable:data
EXTERN, the primitive form of
GLOBAL differs from the user-level form only in that it can take only
one argument at a time.