Function Prototype in C

Function Prototype in C

5 mins read6.7K Views Comment
Updated on Aug 29, 2023 11:08 IST

This article defines the scope of function prototype Importance, examples of Function Prototype and Difference between Function Prototype and Function Definition in C 

2023_02_MicrosoftTeams-image-22.jpg

C function is a segment of code that accomplishes a specific task. The prototype of a C function is a crucial aspect of the C language that informs the compiler about the function’s return type, the number of parameters it takes in, and the data type of those parameters to prevent warnings and errors. 

In this article, we will understand the function prototype in C and discuss its usage and scope through examples.  

We will be covering the following sections: 

So, without further ado, let’s get started!  

What is Function Prototype in C? 

A function prototype in C is a function declaration specifying the function’s return type, name, and the number and types of its parameters. It acts as a contract between the function definition and its callers, providing information about the expected inputs and outputs of the function.  

Syntax 

The syntax for a C function is shown below: 


 
return_type function_name(datatype parameter1, datatype parameter2, datatype parameter3………………)
{
// function body
}
For Example :
int sum(int a, int b)
{
return a + b;
}
Copy code

In this function prototype, we can easily understand that : 

  • Return type of the function: integer 
  • Number of parameters: 2 
  • Data type of Parameters: int 

The compiler uses function prototypes to check the correctness of function calls and provide type checking to prevent incompatible data types from being passed to functions. Function prototypes are typically placed in header files or at the beginning of the code before the main function. They also help to catch potential errors at compile-time rather than at runtime.  

Difference Between Array and Structure
Difference Between Array and Structure
The main difference between array and structure in C programming is that developers can use arrays to store a fixed number of elements of the same data type. In contrast,...read more
Malloc in C Programming: How to Allocate Memory Dynamically 
Malloc in C Programming: How to Allocate Memory Dynamically 
This article covers the concept of dynamic memory allocation in C programming, which allows allocating memory at runtime according to the program’s needs using functions like malloc(), calloc(), realloc(), and...read more
Structure in C Programming: How to Create and Use Programs
Structure in C Programming: How to Create and Use Programs
This article is a complete guide to understanding the meaning of C structure and by the end of this article you will understand how to use and when to use...read more
Recommended online courses

Best-suited C / C++ courses for you

Learn C / C++ with these high-rated online courses

4.24 K
6 weeks
475
6 weeks
– / –
45 hours
4 K
80 hours
– / –
1 month
– / –
40 hours
– / –
2 months
– / –
1 year
4 K
80 hours

Importance of Function Prototype in C 

The function prototype in C programming is important because it provides the compiler with information about the function’s return type, the number of parameters, and the data types of those parameters. The compiler uses this information to check for type compatibility and ensure that calls to the function are made with the correct number and types of arguments.  

Function prototypes also enable the compiler to check for potential problems before the program is executed, reducing the likelihood of runtime errors.  

In addition, function prototypes allow for greater modularity and code reusability in C programming by allowing functions to be declared and used in separate files or blocks of code. 

Examples of Function Prototypes in C 

Example 1: Prime Number Program 


 
#include <stdio.h>
int is_prime(int n);
int main()
{
int num;
printf("Enter a positive integer: ");
scanf("%d", &num);
if (is_prime(num))
printf("%d is a prime number.\n", num);
else
printf("%d is not a prime number.\n", num);
return 0;
}
int is_prime(int n)
{
int i;
if (n <= 1)
return 0;
for (i = 2; i < n; i++)
if (n % i == 0)
return 0;
return 1;
}
Copy code

Output 1: 

Enter a positive integer: 34

34 is not a prime number

In this program, the function prototype int is_prime(int n); is declared at the beginning of the code to provide information about the return type and parameters of the is_prime() function. The is_prime() function takes an integer argument n and returns 1 if n is prime and 0 otherwise.  

The main function calls the is_prime() function and prints a message indicating whether the given number is prime. 

Example 2: Find Cube of a Number 


 
#include <stdio.h>
int find_cube(int n);
int main()
{
int num;
printf("Enter a positive integer: ");
scanf("%d", &num);
printf("The cube of %d is %d.\n", num, find_cube(num));
return 0;
}
int find_cube(int n)
{
return n * n * n;
}
Copy code

Output 2: 

Enter a positive integer:2

The cube of 5 is 125.

In this program, the function prototype int find_cube(int n); is declared at the beginning of the code to provide information about the return type and parameters of the find_cube() function. The find_cube() function takes an integer argument n and returns the Cube of n.  

The main function calls the find_cube() function and prints the result. 

Example 3: Odd Even Number Program 


 
#include <stdio.h>
void check_odd_even(int n);
int main()
{
int num;
printf("Enter a positive integer: ");
scanf("%d", &num);
check_odd_even(num);
return 0;
}
void check_odd_even(int n)
{
if (n % 2 == 0)
printf("%d is an even number.\n", n);
else
printf("%d is an odd number.\n", n);
}
Copy code

Output 3: 

Enter a positive integer:12

12 is even number

In this program, the function prototype void check_odd_even(int n); is declared at the beginning of the code to provide information about the return type and parameters of the check_odd_even() function. The check_odd_even() function takes an integer argument n and determines if n is even or odd by checking if its remainder after division by 2 is 0.  

The function then prints a message indicating the result. The main function calls the check_odd_even() function. 

Difference between Function Prototype and Function Definition in C 

In C, a function prototype and a function definition serve two different purposes: 

  • Function Prototype: A function prototype provides the compiler with information about the function’s return type, name, and parameters. It is declared at the beginning of the program before the main function, and its purpose is to inform the compiler about the function’s signature. Hence, it knows how to call the function correctly when it is encountered later in the code. 

 
int add(int a, int b);
Copy code
  • Function Definition: A function definition, on the other hand, provides the complete implementation of a function, including the return type, name, parameters, and statements that make up the function’s body. The function definition is usually placed after the program’s main function or all function prototypes. 

 
int add(int a, int b)
{
return a + b;
}
Copy code

In summary, the function prototype provides information to the compiler, while the function definition provides the actual implementation of the function. The prototype ensures that the compiler knows how to call the function correctly, while the definition provides the code the function executes when called. 

Scope of Function Prototype 

In C, the scope of a function prototype refers to the part of the program in which the prototype is visible and can be used. 

The scope of a function prototype is the entire program, starting from the point of declaration to the end of the file. This means that a function prototype can be used anywhere in the program after it has been declared. 

However, it is a good practice to declare function prototypes at the beginning of the program, before the main function, so that the compiler has access to all the necessary information about the functions before it encounters their calls. 

By declaring a function prototype, you inform the compiler about the function’s return type, name, and parameters, so that it can validate the function calls and prevent any errors or warnings. 

Endnotes 

In conclusion, function prototypes and function definitions are important concepts in C programming. Function prototypes provide the compiler with information about the return type, name, and parameters of a function, allowing the compiler to validate function calls. 

This article helped you grasp the function prototype in C. Explore our C articles to learn more about the language and consolidate your knowledge of the fundamentals.  

About the Author

This is a collection of insightful articles from domain experts in the fields of Cloud Computing, DevOps, AWS, Data Science, Machine Learning, AI, and Natural Language Processing. The range of topics caters to upski... Read Full Bio