Germany | Finland | Saint Petersburg | Drive

Массивы в M4

Опубликовано в M4

Массивов, как таковых, в препроцессоре M4 нет. Ну на самом деле, зачем массивы в препроцессоре? Однако несложный макрос позволяет их реализовать самостоятельно. Даже ассоциативные.

define(`array', `defn(format(``array[%d]'', `$1'))')
define(`array_set', `define(format(``array[%d]'', `$1'), `$2')')

Пробуем:

dnl Записываем в массив число 4 по индексу 4 и число 17 по индексу 17
array_set(`4', `array element no. 4') array_set(`17', `array element no. 17') dnl Получаем значения
array(`4') array(eval(`10 + 7'))

Если вместо классического массива хочется иметь ассоциативный - можно поменять%d’ на ‘%s’.

 

См. также 

Добавить комментарий


Библиотека

Майнинг в браузере