Цитата(x893 @ Dec 8 2017, 13:51)
Почему нельзя сделать макрос
#define MY_QUEUE_PUT(...) ...
и там наколхозить что угодно - не только максимальную глубину очереди, но и температуру в Шанхае еще отслеживать.
Да, согласен, именно так и надо делать, если не лезть в исходники queue.c
Но это оставляет проблему сопоставления очереди и ее нового внешнего параметра, который мне хочется добавить для этой очереди. Решабельно, если добавить еще и свою функцию/макрос "MY_QUEUE_CREATE()". Но все равно сильно неудобнее и более ресурсоемко, чем напрямую в queue.c добавить и обложить разрешающим дефайном.
В идеале хочется, зная только указатель на структуру очереди (имя очереди), уметь прочитать эту дополнительную величину. Иначе нужна система регистрации с отдельным массивом, в котором упихивается эти величины для каждой из зарегистрированных очередей, и с "разрегистрацией" при удалении очереди.
У меня сейчас около 40 очередей используется, руками очень лениво каждую описывать.
Все мои хотелки решаются автоматически без дополнительных телодвижений, если единожды добавлю код поддержки в тело queue.c.
Минус в том, что так лучше не делать в свете теоретически возможных в будущем апгрейдов FreeRTOS.