Re[6]: Головоломка с const
От: _NN_ www.nemerleweb.com
Дата: 15.01.23 14:08
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Здравствуйте, AleksandrN, Вы писали:


AN>>Однажды он напишет что-то вроде

AN>>
AN>>#define A 2
AN>>#define B 3
AN>>#define C A + B
AN>>

AN>>и удивится, когда подставит С в выражение с операциями, у которых выше приоритет.

vsb>Скобки в дефайнах учат ставить сразу после того, как учат этим самым дефайнам.


И учат ставить всегда пробелы

#define A(b) 0x123e+(b)
int x = A(1); // error: invalid suffix "+" on integer constant

#define B(b) 0x123e + (b)
int y = B(1); // Работает как ожидается
http://rsdn.nemerleweb.com
http://nemerleweb.com
Отредактировано 15.01.2023 14:09 _NN_ . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.