PRIVATE
Specifies a procedure having internal linkage
Syntax:
Private Sub procedure_name [Cdecl|Stdcall|Pascal] [Overload] [Alias "external_name"] [([parameter_list])] [Constructor [priority]] [Static] [Export]
Private Function procedure_name [Cdecl|Stdcall|Pascal] [Overload] [Alias "external_name"] [([parameter_list])] [ byref ] as return_type [Static] [Export]
..procedure body..
End SubPrivate Function procedure_name [Cdecl|Stdcall|Pascal] [Overload] [Alias "external_name"] [([parameter_list])] [ byref ] as return_type [Static] [Export]
..procedure body..
End FunctionDescription:
In procedure definitions (forbidden at declaration line level), Private specifies that a procedure has internal linkage, meaning its name is not visible to external modules.
Therefore among the compiled modules, two procedures with the same identifier, but defined inside different modules, may exist if both are Private.
The compiler removes the Private procedures that are not called, but this does not currently work for Private procedures that are only called by other Private procedures that are not called themselves, because the first one appears as being called.
The Option Private statement allows procedures to be defined with internal linkage by default.
Therefore among the compiled modules, two procedures with the same identifier, but defined inside different modules, may exist if both are Private.
The compiler removes the Private procedures that are not called, but this does not currently work for Private procedures that are only called by other Private procedures that are not called themselves, because the first one appears as being called.
The Option Private statement allows procedures to be defined with internal linkage by default.
Examples:
'e.g.
Private Sub i_am_private
End Sub
Sub i_am_public
End Sub
Private Sub i_am_private
End Sub
Sub i_am_public
End Sub
Differences from QB:
- New to FreeBASIC
See also:
- Private: (Access Control)
- Public
- Option Private
- Sub
- Function
Back to Modularizing
Back to Procedures