ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
3 мая
1425581 Топик полностью
abivan (12.04.2024 11:19, просмотров: 164) ответил LightElf на Я наверно тормоз и все давно так делают, но...
не надо так. Это не везде работает 

#define SIZE_FREE 1 // rg[] Flexible array member not supported in C++

да и поле size в структуре лишнее.



#define DECLARE_FIFO( X_name, Y_size)   \
  struct  {                             \
    uint16_t          size;             \
    uint16_t          ri;               \
    uint16_t          wi;               \
    uint8_t           buf[Y_size];      \
  } X_name;

DECLARE_FIFO(uart_tx, 32);
DECLARE_FIFO(uart_rx, 128);
int main(){
 int size;
 size=sizeof(uart_tx.buf);
 return 0;
};