Вы можете считать оператор 1234;
похожим на оператор getc();
в том смысле, что оба оператора «возвращают» (оценивают) значение, но с возвращаемым значением ничего не делается. Вызов getc () имеет побочный эффект от потребления символа из стандартного ввода, так что вы скорее увидите это в программе, чем просто число. Но оба законны.
У DeadMG есть хорошая пометка о том, почему это хорошая идея, разрешить это. Это не потому, что 1234
может быть определен как макрос (потому что, насколько я знаю, это не разрешено). Это потому, что, особенно с более сложными макросами, легко получить макрос, который может привести к некоторому утверждению, которое ничего не делает.