У меня есть ++ директиву препроцессора C, что является чем-то вроде этого:C++ пределы директивы препроцессора
#if (SOME_NUMBER != 999999999999999)
// do stuff
#endif
999999999999999, очевидно, больше, чем 2 , так что значение не помещается в 32-битном целое число. Будет ли препроцессор правильно использовать 64-разрядное целое для разрешения сравнения, или он обрезает одно или оба значения?
Что случилось, когда вы попробовали? –
Это, безусловно, сработало, но я не знаю, было ли это только потому, что он урезал их обоих до INT32_MAX. – Colen
Еще один тест с SOME_NUMBER, равным INT32_MAX, будет подтверждать, происходит это или нет. –