LLVM 2.1 имеет опцию, которая включает предупреждения для «отсутствующих прототипов функций». Когда включено, предупреждение будет жаловаться на файл как этот:
double square( double d )
{
return d*d;
}
void main()
{
// ...
}
Функция "квадрат" вызовет предупреждение, потому что оно определено без объявления (прототипа). Вы можете устранить предупреждение следующим образом:
double square( double d );
double square( double d )
{
return d*d;
}
void main()
{
// ...
}
Я программировал на C ++ двадцать лет и никогда не видел такого предупреждения. Мне это не кажется полезным.
По умолчанию это предупреждение включено в новых проектах консоли Mac (по крайней мере) в Xcode 4.1. Очевидно, кто-то нашел это достаточно полезным, чтобы сначала реализовать его, а затем включить по умолчанию.
Почему это полезное предупреждение? Почему LLVM имеет это в качестве опции? Почему опция включена по умолчанию на XCode?