Ключовата разлика между декларацията и дефиницията в C е, че декларацията в C казва на компилатора за името на функцията, връщания тип и параметрите, докато дефиницията в C съдържа действителната реализация на функцията. Това означава, че декларацията предоставя информация за функцията на компилатора, докато дефиницията съдържа действителните изрази на функцията за изпълнение на конкретна задача.
C е структуриран език за програмиране с общо предназначение. Той използва контролни структури като if/else, повторения като for цикъл, while цикъл и функции. Функцията е набор от инструкции, които помагат да се изпълнява определена задача отново и отново. Освен това е възможно да извиквате функциите от основната функция. След изпълнение на последния оператор на функцията, управлението преминава обратно към основната функция. Тази статия обсъжда декларацията и дефиницията на функции в C и сравнява разликата между тях. Дефиницията на функцията указва какво прави функцията, а декларацията уточнява какво отива към функцията; това е прототип.
Какво е декларация в C?
Декларацията предоставя информация за функцията на компилатора. Синтаксисът за декларацията е както следва.
return_ type function_name (списък с параметри);
Приемете функция, която изчислява сумата от две цели числа. Декларацията е както следва.
int сума (int num1, int num2);
Името на функцията е sum, а параметрите са две цели числа, които са num1 и num2. Тази функция връща цяло число. Пълният израз завършва с точка и запетая.
Не е необходимо да включвате имената на параметрите в декларацията. Следователно също е възможно да се спомене само типът данни, както следва. Следва валидна декларация.
int сума (int, int);
Какво е дефиниция в C?
Дефиницията съдържа действителните изрази на функцията за изпълнение на конкретна задача. Синтаксисът е както следва.
return_type име_на_функция (списък с параметри){
// функционални изрази
}
Името на функцията помага да се идентифицира функцията. При извикване на функция стойностите преминават към тази функция. Тези стойности се копират в параметрите. Списъкът с параметри може да съдържа един параметър или няколко параметри. И тези параметри имат тип данни и име. Освен това може да има функции и без параметър.
Инструкциите на функцията са във фигурните скоби. Това е функционалното тяло. След като изпълни функцията, тя ще върне стойност. Типът връщане зависи от връщаната стойност. Ако функцията връща цяло число, типът на връщането е int. Ако функцията връща двойно, тогава връщаният тип е двоен и т.н.
Вижте кода по-долу с декларация и дефиниция на функция.
Фигура 01: Програма за изчисляване на сумата на две числа
Съгласно горната програма, ред 3 показва декларацията. Той съобщава на компилатора за името на функцията, параметрите и т.н. В основната функция две стойности се вземат от клавиатурата и се съхраняват в променливите „a“и „b“. В ред 12 тези стойности се предават на функцията, наречена сума. Това „a“и „b“са аргументи.
В ред 16 се изпълнява функцията sum. Той копира стойността a в num1 и стойността b в num2. Тази функция връща сумата и тази стойност се съхранява в променливата „ans“(ред 12). Накрая отговорът се отпечатва на екрана. Накратко, ред 3 показва декларацията, докато редове 16 до 18 показват дефиницията.
Каква е разликата между декларация и дефиниция в C?
Декларацията е прототип, който указва името на функцията и подписа на типа, като типове данни, връщани типове и параметри, но пропуска тялото на функцията. Дефиницията определя името на функцията и сигнатурите на типа, като типове данни, връщани типове и параметри, и включва тялото на функцията. Декларацията казва на компилатора за името на функцията и как да я извика. От друга страна, дефиницията съдържа действителното изпълнение на функцията. Той описва задачата на функцията.
Резюме – Декларация срещу дефиниция в C
Разликата между декларацията и дефиницията в C е, че декларацията в C казва на компилатора за името на функцията, връщания тип и параметрите, докато дефиницията в C съдържа действителното изпълнение на функцията.