Создание графика с несколькими заголовками и осью субтитров в Plotly

Еще один пример коллекции.

#define LENGTHOF(X) ({ \
    const size_t length = (sizeof X / (sizeof X[0] ?: 1)); \
    typeof(X[0]) (*should_be_an_array)[length] = &X; \
    length; })

Плюсы:

  1. Он работает с обычными массивами, массивами переменной длины, многомерными массивами, массивами нулевого размера structs
  2. Он генерирует ошибку компиляции (не предупреждение), если вы передаете любой указатель, struct или union
  3. . Он не зависит от каких-либо функций C11
  4. It дает вам очень читаемую ошибку

Минусы:

  1. Это зависит от некоторых расширений gcc: Typeof , Statement Exprs и (если вам это нравится) Условные
  2. Это зависит от функции C99 VLA

0
задан Martijn Pieters 18 March 2019 в 11:49
поделиться