R Справочное руководство по С++

R.16.3.1 Операция #.

   


Назад  |  Вперёд

Если непосредственно перед параметром в строке замены идет лексема #, то при подстановке параметр и операция # будут заменены на строку литералов , содержащую имя соответствующего параметра макровызова. В символьной константе или строке литералов, входящих в параметр, перед каждым вхождением \ или " вставляется символ \.

Например, если есть макроопределения

           #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";

Назад  |  Вперёд


OtDiatlovaOU
К началу книги

Оформление и дизайн книги OtDiatlovaOU.
Вся книга, архив.