Я заметил, что С++ более ограничительный, чем C, в отношении объявления сигнатур функций перед их использованием, даже если определения функций объявляются после функции, которая на самом деле их вызывает?
Я всегда думал, что C более ограничительный, но похоже, что это не так.
Почему философия изменилась при разработке стандартов для языка программирования на С++?
Например, следующий код выполняет компиляцию в команде gcc
, но выводит ошибку при попытке скомпилировать с помощью g++
#include<stdio.h>
int main()
{
int a=sum(4,6);
printf("%d",a);
return 0;
}
int sum(int a,int b)
{
return a+b;
}
Ошибка
‘sum’ was not declared in this scope