DECLARE
Переменная или функция могут быть объявлены любое количество раз. Память не будет выделена во время объявления
int f(int);
Выше приведено объявление функции. Это объявление предназначено только для информирования компилятора о том, что в функции будет использоваться функция с именем f с типом возвращаемого значения и аргументом int.
DEFINE
Переменная или функция могут быть определены только один раз
Память будет выделена
int f(int a)
{
return a;
}
Система выделяет память, видя приведенное выше определение функции.