The identifier cannot contain any blank character but body can. The macro definition must be terminated by a NewLine . The scope of the replacement is within a file. If an identifier is defined in file1 which includes file2, the identifer in file2 will not be replaced. This is different from the C language.
Macro replacement is recursive.
1.90 Note that the parentheses should be padded with spaces to avoid a cabs compiler parse error. The macro name is case sensitive. The macro definitions should be placed outside the definition blocks, preferably at the beginning of the script.