Я буквально писал код и совершил такую ошибку:
int f ()
{
. . .
}
int g;
int main()
{
. . .
if (f) {
// this is actually true
}
}
Позже я проверил и конструкции вроде:
f;
g;
Не выдает даже ошибок компилятора. Это кажется логичным, но какова цель этого? Как это можно использовать? Чтобы проверить, присутствует ли какой-то идентификатор? Заставить компилятор не оптимизировать функцию или переменную?
UPD: только что проверил и поведение то же самое, используя VS и minGW.