ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
150060 Топик полностью
M@ik (05.03.2009 08:39, просмотров: 585) ответил Alex B. на Статья про атомарный доступ к битовым полям.
Из исходника узнал много нового для себя о препроцессоре Си=) Однако, так и не понял, зачем нужно было городить трехэтажный макрос BFA с переменным числом параметров, в котором действие определяется по значению первого параметра? Не лучше ли сделать 5 отдельных макросов, каждый из которых выполняет свою задачу: #define BFA_WRITE( reg_name, field_name, value ) #define BFA_READ( reg_name, field_name) #define BFA_SET( reg_name, field_name, mask ) #define BFA_CLEAR( reg_name, field_name, mask ) #define BFA_INV( reg_name, field_name, mask ) ИМХО, это не ухудшит функциональность, зато сделает работу с макросами более прозрачной, позволит избавиться от парметров доступа, __BFA_COMM_GET и __BFA_COMM_ERR, тернарных операторов, переменного числа параметров. Может тогда код можно будет понять не читая длинное описание =)