Assembly Language Help (alang.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
Make Variable Public
 Example                                   Up Contents Index Back
────────────────────────────────────────────────────────────────────────────
 
  Syntax:   PUBLIC [langtype] name [,[langtype] name]...
 
  See also: OPTION PROC:PUBLIC, EXTERN, EXTERNDEF, COMM, .MODEL,
            OPTION LANGUAGE:, SEGMENT, PROC, /C<x>, /H, /Zf,
            Table of Memory Models, MASM 5.1 Compatibility
 
  Description:
 
     Makes one or more variables available to other modules in the
     program. PUBLIC names can be forward referenced.
 
     The following can be made PUBLIC:
 
        ■ NEAR and FAR code labels and procedures
        ■ Data created with user-defined types, BYTE, WORD, and other
          types
        ■ Data created with user-defined structures, unions, and records
        ■ Labels created with the LABEL directive
        ■ Symbolic constants created with EQU or =
 
     The PUBLIC directive is normally used with the EXTERN directive.
     The EXTERNDEF and COMM directives allow more flexibility in
     global data declaration than the PUBLIC and EXTERN directives.
     One use is illustrated below.
 
                  ┌──────────────────────────────────┐
                  │                                  │
     ┌─USER.ASM───┴───────────┐        ┌─TOOLS.ASM───┴──────────┐
     │                        │        │                        │
     │ EXTERN global:WORD     │        │         PUBLIC  Global │
     │                        │        │ Global  WORD    5      │
     └────────────────────────┘        └────────────────────────┘
 
     Parameter      Description
 
     langtype       Any language type. Used to control what format
                    label names are sent to the linker.
                    See: language type
 
     name           The name of a variable, label, or numeric equate
                    defined within the current source file
                                    -♦-