Задался вопросом можноли написать шапку для компилятора типа:
#
for (int i = 0; i <9; i++) {
Serial.print(i) ;
}#
А он сам бы при компиляции написал эти сточки указанное количество раз
В интернете нашёл только одну статью "Циклы" на препроцессоре, в другой теме мне подсказали что это макрос и надо писать
Начал просматривать библиотеки со слова макрос и boost и смотрю есть FOR_MACRO от AlexGyver читаю описание, а там почти так и написано это то, что ты ищешь и даже больше, что способен понять.
Так вот подскажите кто разбирается в библиотеке:
- если аргументы не нужны можно ли указать число повторений, числом (переменной), а не вписывать пустые аргументы вручную
-и можно ли указать массив или структуру с аргументами, а не вписывать аргументы вручную
#
for (int i = 0; i <9; i++) {
Serial.print(i) ;
}#
А он сам бы при компиляции написал эти сточки указанное количество раз
В интернете нашёл только одну статью "Циклы" на препроцессоре, в другой теме мне подсказали что это макрос и надо писать
Начал просматривать библиотеки со слова макрос и boost и смотрю есть FOR_MACRO от AlexGyver читаю описание, а там почти так и написано это то, что ты ищешь и даже больше, что способен понять.
Так вот подскажите кто разбирается в библиотеке:
- если аргументы не нужны можно ли указать число повторений, числом (переменной), а не вписывать пустые аргументы вручную
-и можно ли указать массив или структуру с аргументами, а не вписывать аргументы вручную
C++:
#include <FOR_MACRO.h>
byte masiv [] = {5, 25, 35, 45};
void setup() {
Serial.begin (115200);
#define MF1(N, i, p, val)\
Serial.print(N);
#define FOR_1( ...) FOR_MACRO(MF1, 0, __VA_ARGS__)
FOR_1(,,,,,,,,); //развернется как Serial.print(9);Serial.print(9);Serial.print(9);(9раз по числу аргументов в ())
Serial.println();
}
void loop() {
delay (1000);
Serial.println();
///*
#define MF2(N, i, p, val) Serial.print(i);
#define FOR_2( ...) FOR_MACRO(MF2, 0, __VA_ARGS__)
FOR_2(,,,,,,,,); //развернется как Serial.print(8);Serial.print(7);Serial.print(6);...
//*/
//если аргументы не нужны можно ли указать число повторений, числом (переменной), а не вписывать пустые аргументы вручную
//можно ли указать массив или структуру с аргументами, а не вписывать аргументы вручную
/*
#define MF3(N, i, p, val) Serial.print(val);
#define FOR_3( ...) FOR_MACRO(MF3, 0, __VA_ARGS__)
FOR_3(*masiv); //так вписывает один первый аргумент масива
*/
}