Оператор стрінгування (#)
The рядковий оператор (#) є оператором препроцесора, який вставляє в нього відповідний фактичний аргумент подвійні лапки. Оператор #, який зазвичай називається нанизувати перетворює аргумент, який йому передує, на a рядок у лапках . Він також відомий як оператор стрингування.
Зазвичай він використовується з макросами в C.
гра pigeon на андроїд
приклад
Наведений нижче код C демонструє використання оператора Stringizing (#).
C
>
java arraylist
>Вихід
geeksforgeeks>
Пояснення
Наступний препроцесор повертає рядок printf(mkstr(geeksforgeeks)); у printf(geeksforgeeks);
Оператор вставки маркерів (##)
The Оператор вставки маркерів (##) дозволяє об’єднувати маркери, які використовуються як фактичні аргументи, щоб утворювати інші маркери. Часто корисно об’єднати два токени в один під час розширення макросів. Це називається вставленням або конкатенацією маркерів.
Оператор попередньої обробки «##» виконує вставлення маркера. Коли макрос розгортається, два маркери по обидві сторони від кожного оператора «##» об’єднуються в один маркер, який потім замінює «##» і два оригінальні маркери в розгортанні макросу.
Приклади
Наведений нижче код C демонструє використання оператора вставки маркерів (##).
C
git додати все
// C program to illustrate (##) operator> #include> > // Macro definition using the Token-pasting operator> #define concat(a, b) a##b> int> main(> void> )> {> > int> xy = 30;> > > // Printing the concatenated value of x and y> > printf> (> '%d'> , concat(x, y));> > return> 0;> }> |
>
>Вихід
30>
Пояснення
Препроцесор перетворює printf(%d, concat(x, y)); у printf(%d, xy);
Застосування оператора вставки маркерів (##)
## забезпечує спосіб об'єднання фактичних аргументів під час розширення макросу. Якщо параметр у тексті заміни є поруч із ##, параметр замінюється фактичним аргументом, ## і пробіли навколо видаляються, а результат сканується повторно.
статична java