ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
877392 Топик полностью
VLLV (17.10.2018 21:29, просмотров: 108) ответил SciFi на Рискуете налететь на рекурсию. Например, для чтения переменной "a" без макроса никак не обойтись: "#define B() (a)". Ну а этот макрос просто обязан быть завёрнут в другой макрос: "#define C() (B())". В общем, вы поняли, куда я клоню.
Постановка задачи рамочная, вот и ответ неконкретный. Спецом открыл последний проект сделано так #define RS_UART(x) UART0##x , по аналогии было бы #define MOTOR_PWM_TIMER(Z) T##CCR#0. Т.е. в имя макроса утаптывается функционал порта. Но правила не остаются постоянными - мы же не догматики. Ну а про использование макроса нужно помнить в любом случае.