Различия могут показаться незначительными, но они важны. Не все языки имеют такие же различия, но в C ++ объявление переменной делает тип и имя переменной известной компилятору
int i;
A определение переменной выделяет память и задает начальное значение для переменной.
i = 1;
Вы можете объединить объявление и определение переменной в один оператор, как это обычно делается.
int x = 1;
Объявление переменной внутри функции также отводит память для переменной, поэтому следующий код неявно определяет переменную a
как часть ее объявления.
int main()
{
int a;
return 0;
}
Поскольку переменная a
автоматически определяется компилятором, она будет содержать любое значение в той области памяти, которая была выделена для нее. Вот почему использование автоматических переменных небезопасно, пока вы явно не назначите им известное значение.
Назначение происходит каждый раз, когда вы изменяете значение переменной в вашей программе.
x = 2;
x++;
x += 4;
A объявление функции , подобно объявлению переменной, делает подпись функции известной компилятору. Это позволяет вам вызывать функцию в исходном коде до ее определения, не вызывая ошибки компилятора.
int doSomething(float x);
A определение функции указывает тип возвращаемого значения, имя, список параметров и инструкции для функции. Первые три из этих элементов должны соответствовать объявлению функции. Функция должна быть определена только один раз в данной программе.
int doSomething(float x)
{
if( x < 0 )
{
x = -x;
}
return static_cast<int>(x);
}
Вы можете объединить функцию decalartion и определение в одно целое, но вы должны сделать это до вызова функции в любом месте вашей программы.