Да.Но вам нужны определения для true
и false
(или по крайней мере true
), иначе препроцессор будет обрабатывать такие неразрешимые токены в условных выражениях препроцессора как 0 (см. 6.10.1p4 ), поэтомувы получаете 7, а не 5 на выходе (и true
, и false
обрабатываются как 0
в условных выражениях, а поскольку 0 == 0
, все макросы BIT устанавливаются в ненулевое значениеверсии).
#include
ing <stdbool.h>
предоставит определения.Они гарантированно равны (7,18) :
#define true 1
#define false 0