Разное и полезное > Микроконтроллеры и их программирование

можно ли заставить препроцессор посчитать массив констант?

(1/2) > >>

lgedmitry:
Есть идея организовать массив констант, в котором каждая последующая составляет 75% от предыдущей.
Можно, конечно, всё вручную забить. Но всё ж, хотелось бы для оперативности отладки программы, задавать вручную только первую из них.
Начал писать вот так:
--- Код: ---unsigned int const merka[16]={65536*0.75,merka[0]*0.75,merka[1]*0.75...};
--- Конец кода ---
- не канает, материцца. Можно ли как-нить сделать? ;-[

xar:
как вариант - писать программулину, которая сгенерит заготовку. ну или в экселе и копипаст.

boroda:
Хм... ЕМНИП, запись в C# константы выглядит так:
--- Код: ---const unsigned int merka
--- Конец кода ---

xar:
кстати да. конст не на месте.

blindman:
Только такое на ум приходит


--- Код: ---#define BASE 65535

#define NEXT_CONST(c) (c * 3 /4)
#define CONST0 BASE
#define CONST1 NEXT_CONST(CONST0)
#define CONST2 NEXT_CONST(CONST1)
#define CONST3 NEXT_CONST(CONST2)
#define CONST4 NEXT_CONST(CONST3)
#define CONST5 NEXT_CONST(CONST4)
#define CONST6 NEXT_CONST(CONST5)
#define CONST7 NEXT_CONST(CONST6)
#define CONST8 NEXT_CONST(CONST7)
#define CONST9 NEXT_CONST(CONST8)
#define CONST10 NEXT_CONST(CONST9)
#define CONST11 NEXT_CONST(CONST10)
#define CONST12 NEXT_CONST(CONST11)
#define CONST13 NEXT_CONST(CONST12)
#define CONST14 NEXT_CONST(CONST13)
#define CONST15 NEXT_CONST(CONST14)

int const unsigned merka[16] = {
    CONST0, CONST1, CONST2, CONST3,
    CONST4, CONST5, CONST6, CONST7,
    CONST8, CONST9, CONST10, CONST11,
    CONST12, CONST13, CONST14, CONST15,
};

--- Конец кода ---


Порядок модификаторов в C не имеет значения (в отличии от, например, языка Java)

const int unsigned i = 1;
unsigned int const i = 1;
int const unsigned i = 1;
int unsigned const i = 1;
const unsigned int i = 1;
unsigned const int i = 1;

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии