All macro functions live in the same global namespace. All macros declared in any open file, stored in a project, or in a project on the project symbol path are in scope. That is, you can have forward references to macros. You do not have to declare them before calling them.
Source Insight uses its symbol lookup engine to resolve references to macro functions when macros are executed and when the user invokes a macro command. Therefore, symbol lookup rules apply to macro name binding. See: Symbols and Projects.
You can also use the various symbol lookup techniques to locate macro functions while you edit. See: Symbol Navigation Commands. For example, you can type the name of a macro function in the Browse Project Symbols dialog box and jump to its definition.