|
|
Если непосредственно перед параметром в строке замены идет лексема
#, то при подстановке параметр и операция # будут заменены
на строку литералов , содержащую имя соответствующего параметра
макровызова. В символьной константе или строке литералов, входящих
в параметр, перед каждым вхождением \ или " вставляется символ \.
Например, если есть макроопределения
#define path(logid,cmd) "/usr/" #logid "/bin/" #cmd
то макровызов
char* mytool=path(joe,readmail);
приведет к такому результату:
char* mytool="/usr/" "joe" "/bin/" "readmail";
После конкатенации соседних строк ($$R.16.1) получим:
char* mytool="/usr/joe/bin/readmail";
| |