Декларация:
int a; // this declares the variable 'a' which is of type 'int'
Таким образом, объявление связывает переменную с типом.
Ниже приведены некоторые примеры объявления.
int a;
float b;
double c;
Теперь объявление функции:
int fun(int a,int b);
Обратите внимание на точку с запятой в конце функции, поэтому она говорит, что это всего лишь объявление. Компилятор знает, что где-то в программе эта функция будет определена с этим прототипом. Теперь, если компилятор получает вызов функции что-то вроде этого
int b=fun(x,y,z);
Компилятор выдаст сообщение о том, что такой функции нет. Потому что у него нет прототипа для этой функции.
Обратите внимание на разницу между двумя программами.
Программа 1
#include <stdio.h>
void print(int a)
{
printf("%d",a);
}
main()
{
print(5);
}
При этом функция печати также объявляется и определяется. Поскольку вызов функции идет после определения. Теперь посмотрите следующую программу.
Программа 2
#include <stdio.h>
void print(int a); // In this case this is essential
main()
{
print(5);
}
void print(int a)
{
printf("%d",a);
}
Это важно, потому что вызов функции предшествует определению, поэтому компилятор должен знать, есть ли такая функция. Поэтому мы объявляем функцию, которая сообщит компилятору.
Определение:
Эта часть определения функции называется Определение. Он говорит, что делать внутри функции.
void print(int a)
{
printf("%d",a);
}
Теперь с переменными.
int a; //declaration
a=10; //definition
Иногда объявление и определение группируются в одно утверждение, подобное этому.
int a=10;