The #define preprocessor directive has the form: #define identifier token-string The preprocessor substitutes the token string everywhere in the program that it finds the identifier except within comments, character constants, or string constants. Macro replacements are defined in a #define directive of the following form: #define name([parm1[,parm2,...]]) token-string Within the program, all macro references that have the following form are replaced by the token string. The arguments in the macro reference replace the corresponding parameters in the token string. name([arg1[,arg2,...]])