Macros are text substitions provided in programming language sources, and also in some applications. First seen in assemblers, they later appeared in higher-level languages such as C programming language.
Modern highly optimizing compilers (which are prepared to do inline expansion of calls to small subroutines) have made them obsolescent now.
The operation is fairly straight-forward: if macro 'foo' is defined to produce 'barzap', then when the string 'foo' is seen in the source (or input, in an application), it is replaced with 'barzap'.
More complex macros can take arguments, and the replacement string includes special syntax to show where to substitute argument strings.