Цитата(ViKo @ Aug 29 2015, 00:08)

Так
#define TEST (1000000000000ULL / 1000000001)
предопределеннее некуда, а SSerge говорит, что не считает.
А зачем ему что-то считать в данном случае?
Рассматривайте препроцессор как специализированный текстовый редактор, который работает непосредственно перед компилятором. Это его основное предназначение, т.е. препроцессор получает на входе
текст программы, делает в ней
текстовые подстановки и выдаёт на выходе тоже
текст, с которым потом разбирается уже компилятор.
Ничего считать при этом препроцессору не нужно, просто один фрагмент текста заменяется на другой.
Для проверки включите выдачу результата работы препроцессора в файл, да и посмотрите что там будет.
Кейла у меня нет, могу на примере IAR-а продемонстрировать что препроцессор делает только подстановку, а вычисляет выражение уже компилятор:
Код
//файл main.cpp
void foo()
{
#define TEST (1000000000000ULL / 1000000001)
SysTick_Config( TEST );
}
Код
//файл main.i - выход препроцессора
void foo()
{
SysTick_Config( (1000000000000ULL / 1000000001) );
}
Код
//файл main.lst
76 void foo()
77 {
78 #define TEST (1000000000000ULL / 1000000001)
79 SysTick_Config( TEST );
\ _Z3foov: (+1)
\ 00000000 0xF240 0x30E7 MOVW R0,#+999
\ 00000004 0x.... B.N _Z14SysTick_Configj
80 }
Russia est omnis divisa in partes octo.