DEV Community

Cover image for C - Functions, nested loops
Haile Melaku
Haile Melaku

Posted on

C - Functions, nested loops

Now we are going to see how we use nested loops and function in c.


# C - Nested loops

Nested loop is a way of adding a loop inside a loop and the syntax for a nested loops are:

Nested for loop syntax

for ( initialization; condition; increment ) {

   for ( initialization; condition; increment ) {

      // statement of inside loop
   }

   // statement of outer loop
}

Enter fullscreen mode Exit fullscreen mode

Nested while loop syntax

while(condition) {

   while(condition) {

      // statement of inside loop
   }

   // statement of outer loop
}
Enter fullscreen mode Exit fullscreen mode

Nested do while loop syntax

do{

   do{

      // statement of inside loop
   }while(condition);

   // statement of outer loop
}while(condition);

Enter fullscreen mode Exit fullscreen mode

Example

#include <stdio.h>

/**
 * main - Entry point
 * Description: nested loop
 *
 *Return: Always 0 (Success)
 */

int main(void)
{
       int i,j;

       printf("Nested for loop with @\n");
       for (i = 0;i < 10; i++)
       {
            for(j = 0;j < 10; j++)
            {
                    printf("@");
            }
            printf("\n");
       }
       return (0);
}
Enter fullscreen mode Exit fullscreen mode

output

Image description

All the loops have one thing in common, that is once one loop of the outside loop is active then the inner loop starts to activate, the second loop of the outside loop won't be activated until the inner loop finishes.


# C - Functions

A function is a group of statements that are designed to perform a certain task.

Most of the time functions are used to divide up our code into simpler parts that make the code easier to read and debug.

void: is used to indicate that a function don't need a return value.

Syntax

void FUNCTION_NAME( PARAMETER ){}

Functions must be declared before usage.

A function declaration tells the compiler about a function's name, return type, and parameters. A function definition provides the actual body of the function.

Now that we understood the basic concepts of functions let's see the anatomy one by one.

Example: a function that add two numbers, we are going to be using this example all throughout this course.

Image description

Function prototype (signature of the function)

Function prototype is used to specify the input/output interface of the function, what to input and what return to expect.

In the example given above the function prototype is
int add(int a, int b)

This prototype is used to:

  • Specify the return type of the function.e.g on this example we get int value.

  • Specify the number and data type of the arguments given to the function. e.g this example has 2 argument and both have an int data type.

  • Specify the name of the function. in the example the function is named add.

automatic variable

This are the variable that are declared inside the function and are only access in the scope of the function.

Example

int add(int a,int b)
{
       int c = 1;
       return (a + b + c);
}
Enter fullscreen mode Exit fullscreen mode

In this example the int c = 1 is an automatic variables and only available in the scope of the function.

Return value

Are the values returned by the function.

Example

return (a + b);

If we don't specify a data type for the return value of the function the compiler will place an int data type by default

add ( int a, int b)
{
  return(a + b);
}
Enter fullscreen mode Exit fullscreen mode

By Default this is an int return type

function invocation

This the calling or usage of the function from the other function statement.

To call a function, you simply need to pass the required parameters along with the function name, and if the function returns a value, then you can store the returned value.

Example

add(5,6)

Forward Declaration

Is the defalcation of a function before or after defining a function by using prototype.

Example

Image description

This future of a function is mainly used in Header file and we will be covering it in the next topic.

Function Arguments

Arguments are values that are accepted through the function parameter.

There are two ways in which arguments can be passed to a function:

  • Call by value: in this case the value passed as an argument is just the copies of the actual values, Making a change to the value in the function doesn't change the argument in the parent function.

  • Call by reference: in this case the value passed as an argument is the address of the actual values, Making a change to the value in the function affects or changes the argument in the parent function.

Arrays are always going to be called by reference that means they are passed by address.

We will dive deeper into call by reference in the C - pointers.


# C - Header Files

A header file is a file with .h extension which contains C function prototype and macro definitions to be shared between several source files.

Including a header file is like copying the content of the header file.

syntax

For system header files
#include <file.h>

It searches for a file named 'file.h' in a standard list of system directories.

For your own custom header files
#include "file.h"

It searches for a file named 'file.h' in the directory containing the current file

Creating a Header

To create a header file we include this syntax

#ifndef HEADER_FILE_NAME
#define HEADER_FILe_NAME

the entire header file file

#endif
Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Collapse
 
suotanu profile image
EFUETANU COLLINS

Yes, it was quite simple and easy to understand