22
DecFunctions in C: Learn Types of Functions in C
Functions in C Programming: An Overview
Functions in C are a very important programming construct. It is a block of code written to perform a specific task. Every programming language from C to Python employs the use of functions. Understanding the concept of functions means covering a big portion of programming. In this C tutorial, we will understand functions in C and its crucial aspects like function parameters, prototypes, etc. For a more in-depth understanding, consider our C Certification Course.
What is a Function in C?
A function in C is a block of code written by the programmer to perform a specific task. E.g. function to calculate the area of a square. A function executes only when it is called. It is an important aspect of code reusability and understandability. You can divide your program into as many functions as you want to solve a difficult task.
There are two types of functions in C.
- Standard Library Functions: Inbuilt functions in C
- User-defined Functions: Created by users
Function Declaration in C
Syntax
returnType functionName (parameter1, parameter2,...) {
// function body
}
returnType
signifies the type of value returned by the function. e.g.int
,void
.functionName
specifies the name of the function. You must give a function name relevant to the task the function performs. It increases understandability. e.g.area()
- The parentheses
()
afterfunctionName
containsparameters
. They are like values given by the programmer to be used by the function to perform its task. The()
can be empty i.e. no parameters. function body
in the{}
contains the code to perform the given task.
Example
// function declaration
void welcomeFunction() {
printf("Welcome to ScholarHat\n");
}
Read More - Top 50 C Interview Questions and Answers
Function Call in C
As mentioned above, a function executes only when it is called. When you create/declare a function, it gets saved for use in the future.
Syntax
functionName (parameter1, parameter2,...);
Example
We will call the welcomeFunction()
created above in the main()
function
int main() {
// function call
welcomeFunction();
}
- You can even call a function as many times as you want.
Example in the C Compiler
#include <stdio.h> void welcomeFunction() { printf("Welcome to ScholarHat\n"); } int main() { // Function calls welcomeFunction(); welcomeFunction(); welcomeFunction(); return 0; }
Output
Welcome to ScholarHat Welcome to ScholarHat Welcome to ScholarHat
Function Definition in C
The body of the function is known as the function definition.
Example
// function declaration
void welcomeFunction() {
printf("Welcome to ScholarHat\n"); //function definition
}
Function Parameters in C
As said above, parameters are the values given by the programmer during function declaration to be used by the function to perform its task. They are variables of the function specified in parentheses()
.Syntax
returnType functionName (parameter1, parameter2,...) {
// function body
}
There can be as many parameters in the ()
as you want in the function declaration. They must be separated by commas ,
. The values of the function parameters are passed during a function call.
- The parameters in the function call are known as
arguments
oractual parameters
. - The parameters in the function declaration are known as parameters or
formal parameters
Example
#include <stdio.h>
void welcomeFunction(const char *value){
printf("Welcome \t to \t %s\n", value);
}
int main() {
// Function calls
welcomeFunction("ScholarHat");
welcomeFunction("ScholarHat");
welcomeFunction("ScholarHat");
return 0;
}
In the above C code, the welcomeFunction()
takes a string parameter. In the main()
function, we have called the welcomeFunction()
three times with the string parameter value or argumentScholarHat
. Therefore the function executes three times.
Output
Welcome to ScholarHat
Welcome to ScholarHat
Welcome to ScholarHat
Remember: The arguments in the function call must always match with the corresponding parameters in the function declaration.
Function Prototype in C
We saw the function declaration and function definition above. Did you notice that the user-defined function is always defined above the main()
function? In other words, the user-defined function is always defined above the function call. What if we create our function after the function call?
In C++, if a user-defined function, such as welcomeFunction()
is declared after the function call, an error will occur. Therefore, we always have to declare the function in C above the function call. But, we can separate the function declaration and function definition in C. Here comes the role of thefunction prototype in C.
Function Prototype in C is just the function declaration without the function definition above the function call.
Syntax
returnType functionName(dataType1, dataType2, ...);
Example
#include <stdio.h>
void welcomeFunction(const char *value); //function prototype
int main() {
// Function call above function declaration
welcomeFunction("ScholarHat");
return 0;
}
// Function definition
void welcomeFunction(const char *value) {
printf("Welcome \t to \t %s\n", value);
}
Here, the function prototype, void welcomeFunction(string);
informs the compiler about the function name, welcomeFunction()
, and its parameter of type string
, value. Therefore, we can call the welcomeFunction()
from the main()
function before its definition.
Output
Welcome to ScholarHat
return statement in C
You all might be familiar with the return
statement in C as you have already read in the Jump Statements in C tutorial.
We saw returnType
in the function declaration syntax. We read that it signifies the type of the value returned by the function. In the above examples we have given the return
type as void
which means the function doesn't return any value.
If you want your function to return a value, you must mention the required returnType
in the function declaration and use the return
statement in the function definition. The return
keyword denotes that the function has ended. Any code after return
inside the function is not executed.
Example
#include <stdio.h>
int returnFunction(int a, int b) {
return a + b;
}
int main() {
// Function call
printf("%d", returnFunction(20, 40));
return 0;
}
In the above C code in the C Online Compiler, the returnFunction()
adds the values of a
and b
and returns it to the main()
function from where it is called. As the returnFunction()
returns an integer value the returnType
of the function is int
.
Output
60
Summary
We saw in this blog post almost all the aspects of functions in C with examples. Now, you need to do hands-on to familiarize yourselves with such an important programming construct. For practicals and hands-on experience, you can consider our C Certification program.