SlideShare a Scribd company logo
Modularizing and Reusing of code through Functions

Calculation of area of Circle is separated into a separate module from Calculation of area of
Ring and the same module can be reused for multiple times.


 /* program to find area of a ring                   /* program to find area of a ring */
 */                                                  #include<stdio.h>
 #include<stdio.h>                                   float area();         Function Declaration
 int main()              Repeated & Reusable         int main()
 {                           blocks of code          {
    float a1,a2,a,r1,r2;                                float a1,a2,a;
                                                        a1 = area();        Function Calls
    printf("Enter the radius : ");
                                                        a2 = area();
    scanf("%f",&r1);                                    a = a1- a2;
    a1 = 3.14*r1*r1;                                    printf("Area of Ring : %.3fn", a);
    printf("Enter the radius : ");                   }
    scanf("%f",&r2);                                 float area()         Function Definition
    a2 = 3.14*r2*r2;                                 {
    a = a1- a2;                                         float r;
    printf("Area of Ring : %.3fn",                     printf("Enter the radius : ");
                                                        scanf("%f", &r);
 a);
                                                        return (3.14*r*r);
 }                                                   }
A Function is an independent, reusable module of statements, that specified by a name.
 This module (sub program) can be called by it’s name to do a specific task. We can call the
 function, for any number of times and from anywhere in the program. The purpose of a function
 is to receive zero or more pieces of data, operate on them, and return at most one piece of
 data.
        A Called Function receives control from a Calling Function. When the called function
 completes its task, it returns control to the calling function. It may or may not return a value to
 the caller. The function main() is called by the operating system; main() calls other functions.
 When main() is complete, control returns to the operating system.

                                         value of ‘p’ is copied to loan’
                                                value of ‘n’ is copied to terms’
int main() {
                                                                      value of ‘r’ is copied to ‘iRate’
  int n;
  float p, r, si;
  printf(“Enter Details of Loan1:“);      float calcInterest(float loan , int terms , float iRate )
                                          {
  scanf( “%f %d %f”, &p, &n, &r);
                                              float interest;                            The block is
  si =calcInterest( p, n , r );               interest = ( loan * terms * iRate )/100;   executed
  printf(“Interest : Rs. %f”, si);            return ( interest );
  printf(“Enter Details of Loan2:“);      }
}
                                                                            Called Function
                    value of ‘interest’ is assigned to ‘si ’

              Calling Function                    Process of Execution for a Function Call
int main()
            {
                int n1, n2;
                printf("Enter a number : ");
                scanf("%d",&n1);
                printOctal(n1);
                readPrintHexa();
                printf("Enter a number : ");
                scanf("%d",&n2);                1
        2       printOctal(n2);
                printf(“n”);
            }                                             3   7
                                                                       Flow of
    8       void printOctal(int n)
            {
                                                                       Control
                 printf("Number in octal form : %o n", n);                in
            }
                                                                    Multi-Function
6           void readPrintHexa()                                      Program
            {
                int num;
                printf("Enter a number : ");
                scanf("%d",&num);
                printHexa(num);
                printf(“n”);
            }                      4
            void printHexa(int n)
        5   {
                 printf("Number in Hexa-Decimal form : %x n",n);
            }
/* Program demonstrates function calls */    Function-It’s Terminology
#include<stdio.h>
int add ( int n1, int n2 ) ;                         Function Name
int main(void)
{                                             Declaration (proto type) of Function
    int a, b, sum;
    printf(“Enter two integers : ”);               Formal Parameters
    scanf(“%d %d”, &a, &b);
                                                      Function Call
      sum = add ( a , b ) ;
      printf(“%d + %d = %dn”, a, b, sum);
      return 0;                                     Actual Arguments
}
                                                       Return Type
/* adds two numbers and return the sum */
                                                  Definition of Function
int    add ( int x , int y   )
{                                             Parameter List used in the Function
      int s;
      s = x + y;                             Return statement of the Function
      return ( s );
}                                                       Return Value
Categories of Functions
/* using different functions */            void printMyLine()      Function with No parameters
int main()                                 {                             and No return value
                                              int i;
{
                                              for(i=1; i<=35;i++) printf(“%c”, ‘-’);
   float radius, area;                        printf(“n”);
   printMyLine();                          }
   printf(“ntUsage of functionsn”);
   printYourLine(‘-’,35);                  void printYourLine(char ch, int n)
   radius = readRadius();                  {
                                                                   Function with parameters
   area = calcArea ( radius );                                         and No return value
   printf(“Area of Circle = %f”,               int i;
                                              for(i=1; i<=n ;i++) printf(“%c”, ch);
area);
                                              printf(“n”);
}                                          }

                                                  float calcArea(float r)
 float readRadius()       Function with return    {                       Function with return
 {                       value & No parameters
     float r;                                         float a;           value and parameters
     printf(“Enter the radius : “);                   a = 3.14 * r * r ;
     scanf(“%f”, &r);                                 return ( a ) ;
     return ( r );                                }
 }
                                                 Note: ‘void’ means “Containing nothing”
Static Local Variables
 #include<stdio.h>                           void area()
                                                                      Visible with in the function,
 float length, breadth;                      {                        created only once when
 int main()                                    static int num = 0;    function is called at first
 {                                                                    time and exists between
    printf("Enter length, breadth : ");          float a;             function calls.
    scanf("%f %f",&length,&breadth);             num++;
    area();                                      a = (length * breadth);
    perimeter();                                 printf(“nArea of Rectangle %d : %.2f", num, a);
    printf(“nEnter length, breadth: ");     }
    scanf("%f %f",&length,&breadth);
    area();                                  void perimeter()
    perimeter();                             {
 }                                             int no = 0;
                                               float p;
                                               no++;
       External Global Variables
                                               p = 2 *(length + breadth);
Scope:     Visible   across     multiple
                                               printf(“Perimeter of Rectangle %d: %.2f",no,p);
functions Lifetime: exists till the end
                                             }
of the program.

                                                       Automatic Local Variables
Enter length, breadth : 6 4
                                           Scope : visible with in the function.
Area of Rectangle 1 : 24.00
                                           Lifetime: re-created for every function call and
Perimeter of Rectangle 1 : 20.00
                                           destroyed automatically when function is exited.
Enter length, breadth : 8 5
Area of Rectangle 2 : 40.00
Perimeter of Rectangle 1 : 26.00                 Storage Classes – Scope & Lifetime
File1.c                                             File2.c
#include<stdio.h>
                                                    extern float length, breadth ;
float length, breadth;
                                                    /* extern base , height ; --- error */
                                                    float rectanglePerimeter()
static float base, height;
                                                    {
int main()
                                                       float p;
{
                                                       p = 2 *(length + breadth);
   float peri;
                                                       return ( p );
   printf("Enter length, breadth : ");
                                                    }
   scanf("%f %f",&length,&breadth);
   rectangleArea();
   peri = rectanglePerimeter();
                                                             External Global Variables
   printf(“Perimeter of Rectangle : %f“, peri);
                                                    Scope: Visible to all functions across all
   printf(“nEnter base , height: ");
                                                    files in the project.
   scanf("%f %f",&base,&height);
                                                    Lifetime: exists      till the end of the
   triangleArea();
                                                    program.
}
void rectangleArea() {
  float a;
                                                              Static Global Variables
  a = length * breadth;
                                                    Scope: Visible to all functions with in
  printf(“nArea of Rectangle : %.2f", a);
                                                    the file only.
}
                                                    Lifetime: exists     till the end of the
void triangleArea() {
                                                    program.
  float a;
  a = 0.5 * base * height ;
  printf(“nArea of Triangle : %.2f", a);         Storage Classes – Scope & Lifetime
}
#include<stdio.h>                                       Preprocessor Directives
void showSquares(int n)      A function
{                            calling itself   #define  - Define a macro substitution
    if(n == 0)                                #undef   - Undefines a macro
                                   is         #ifdef   - Test for a macro definition
       return;                Recursion       #ifndef  - Tests whether a macro is not
    else
                                                         defined
       showSquares(n-1);                      #include - Specifies the files to be included
    printf(“%d “, (n*n));                     #if      - Test a compile-time condition
}                                             #else    - Specifies alternatives when #if
int main()                                               test fails
{                                             #elif    - Provides alternative test facility
   showSquares(5);                            #endif   - Specifies the end of #if
}                                             #pragma - Specifies certain instructions
                                              #error   - Stops compilation when an error
                                                         occurs
Output : 1 4 9 16 25
                                              #        - Stringizing operator
addition    showSquares(1)       execution    ##       - Token-pasting operator
  of        showSquares(2)           of
function                          function
  calls     showSquares(3)          calls          Preprocessor is a program that
   to       showSquares(4)           in          processes the source code before it
  call-                           reverse           passes through the compiler.
 stack      showSquares(5)
                main()         call-stack

More Related Content

What's hot (18)

PPTX
Simple c program
Ravi Singh
 
PPT
Unit2 C
arnold 7490
 
PPT
Control Statements, Array, Pointer, Structures
indra Kishor
 
PDF
Functions
SANTOSH RATH
 
PDF
C programming Workshop
neosphere
 
PPSX
Function in c
savitamhaske
 
PPT
lets play with "c"..!!! :):)
Rupendra Choudhary
 
PPSX
C programming function
argusacademy
 
PPT
Mesics lecture 5 input – output in ‘c’
eShikshak
 
PPTX
Dti2143 chapter 5
alish sha
 
PPT
Input And Output
Ghaffar Khan
 
PPTX
What is c
Nitesh Saitwal
 
DOC
C lab-programs
Tony Kurishingal
 
PDF
7 functions
MomenMostafa
 
PPSX
Concepts of C [Module 2]
Abhishek Sinha
 
PDF
Programming For Problem Solving Lecture Notes
Sreedhar Chowdam
 
PPTX
Function in c
CGC Technical campus,Mohali
 
PDF
C Programming Storage classes, Recursion
Sreedhar Chowdam
 
Simple c program
Ravi Singh
 
Unit2 C
arnold 7490
 
Control Statements, Array, Pointer, Structures
indra Kishor
 
Functions
SANTOSH RATH
 
C programming Workshop
neosphere
 
Function in c
savitamhaske
 
lets play with "c"..!!! :):)
Rupendra Choudhary
 
C programming function
argusacademy
 
Mesics lecture 5 input – output in ‘c’
eShikshak
 
Dti2143 chapter 5
alish sha
 
Input And Output
Ghaffar Khan
 
What is c
Nitesh Saitwal
 
C lab-programs
Tony Kurishingal
 
7 functions
MomenMostafa
 
Concepts of C [Module 2]
Abhishek Sinha
 
Programming For Problem Solving Lecture Notes
Sreedhar Chowdam
 
C Programming Storage classes, Recursion
Sreedhar Chowdam
 

Similar to C-Language Unit-2 (20)

PDF
Function lecture
DIT University, Dehradun
 
DOCX
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
Little Tukta Lita
 
PDF
C Language Lecture 17
Shahzaib Ajmal
 
PDF
C- Programming Assignment 4 solution
Animesh Chaturvedi
 
PPT
L4 functions
mondalakash2012
 
PDF
Programming Fundamentals Functions in C and types
imtiazalijoono
 
PPTX
Function in C program
Nurul Zakiah Zamri Tan
 
DOC
Unit 8
rohassanie
 
PDF
The solution manual of programming in ansi by Robin
Shariful Haque Robin
 
PPT
Unit2 C
arnold 7490
 
PPT
Fucntions & Pointers in C
Janani Satheshkumar
 
PPT
C tutorial
Anurag Sukhija
 
PDF
Revision1 C programming
Kho コー。イエー。イエン
 
PPTX
Chapter 1_C Fundamentals_HS_Tech Yourself C.pptx
ssuser71a90c
 
PDF
Principals of Programming in CModule -5.pdfModule-3.pdf
anilcsbs
 
PDF
C lab programs
Dr. Prashant Vats
 
PDF
C lab programs
Dr. Prashant Vats
 
PDF
Functions
Swarup Kumar Boro
 
PDF
The solution manual of c by robin
Abdullah Al Naser
 
PPT
Functions and pointers_unit_4
Saranya saran
 
Function lecture
DIT University, Dehradun
 
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
Little Tukta Lita
 
C Language Lecture 17
Shahzaib Ajmal
 
C- Programming Assignment 4 solution
Animesh Chaturvedi
 
L4 functions
mondalakash2012
 
Programming Fundamentals Functions in C and types
imtiazalijoono
 
Function in C program
Nurul Zakiah Zamri Tan
 
Unit 8
rohassanie
 
The solution manual of programming in ansi by Robin
Shariful Haque Robin
 
Unit2 C
arnold 7490
 
Fucntions & Pointers in C
Janani Satheshkumar
 
C tutorial
Anurag Sukhija
 
Revision1 C programming
Kho コー。イエー。イエン
 
Chapter 1_C Fundamentals_HS_Tech Yourself C.pptx
ssuser71a90c
 
Principals of Programming in CModule -5.pdfModule-3.pdf
anilcsbs
 
C lab programs
Dr. Prashant Vats
 
C lab programs
Dr. Prashant Vats
 
The solution manual of c by robin
Abdullah Al Naser
 
Functions and pointers_unit_4
Saranya saran
 
Ad

More from kasaragadda srinivasrao (7)

PPT
C Language Unit-8
kasaragadda srinivasrao
 
PPT
C Language Unit-7
kasaragadda srinivasrao
 
PPT
C Language Unit-6
kasaragadda srinivasrao
 
PPT
C Language Unit-5
kasaragadda srinivasrao
 
PPT
C Language Unit-4
kasaragadda srinivasrao
 
PPT
C Language Unit-3
kasaragadda srinivasrao
 
PPTX
Coupon tango site demo
kasaragadda srinivasrao
 
C Language Unit-8
kasaragadda srinivasrao
 
C Language Unit-7
kasaragadda srinivasrao
 
C Language Unit-6
kasaragadda srinivasrao
 
C Language Unit-5
kasaragadda srinivasrao
 
C Language Unit-4
kasaragadda srinivasrao
 
C Language Unit-3
kasaragadda srinivasrao
 
Coupon tango site demo
kasaragadda srinivasrao
 
Ad

Recently uploaded (20)

PPTX
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
PPTX
BANDHA (BANDAGES) PPT.pptx ayurveda shalya tantra
rakhan78619
 
PDF
LAW OF CONTRACT (5 YEAR LLB & UNITARY LLB )- MODULE - 1.& 2 - LEARN THROUGH P...
APARNA T SHAIL KUMAR
 
PPSX
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
PPTX
Stereochemistry-Optical Isomerism in organic compoundsptx
Tarannum Nadaf-Mansuri
 
PPTX
Mathematics 5 - Time Measurement: Time Zone
menchreo
 
PDF
LAW OF CONTRACT ( 5 YEAR LLB & UNITARY LLB)- MODULE-3 - LEARN THROUGH PICTURE
APARNA T SHAIL KUMAR
 
PDF
DIGESTION OF CARBOHYDRATES,PROTEINS,LIPIDS
raviralanaresh2
 
PDF
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
PPT
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
PDF
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
PPTX
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
PPTX
SPINA BIFIDA: NURSING MANAGEMENT .pptx
PRADEEP ABOTHU
 
PPSX
Health Planning in india - Unit 03 - CHN 2 - GNM 3RD YEAR.ppsx
Priyanshu Anand
 
PPTX
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
PPTX
A PPT on Alfred Lord Tennyson's Ulysses.
Beena E S
 
PPTX
THE TAME BIRD AND THE FREE BIRD.pptxxxxx
MarcChristianNicolas
 
PPT
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
PDF
Isharyanti-2025-Cross Language Communication in Indonesian Language
Neny Isharyanti
 
PPTX
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
BANDHA (BANDAGES) PPT.pptx ayurveda shalya tantra
rakhan78619
 
LAW OF CONTRACT (5 YEAR LLB & UNITARY LLB )- MODULE - 1.& 2 - LEARN THROUGH P...
APARNA T SHAIL KUMAR
 
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
Stereochemistry-Optical Isomerism in organic compoundsptx
Tarannum Nadaf-Mansuri
 
Mathematics 5 - Time Measurement: Time Zone
menchreo
 
LAW OF CONTRACT ( 5 YEAR LLB & UNITARY LLB)- MODULE-3 - LEARN THROUGH PICTURE
APARNA T SHAIL KUMAR
 
DIGESTION OF CARBOHYDRATES,PROTEINS,LIPIDS
raviralanaresh2
 
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
SPINA BIFIDA: NURSING MANAGEMENT .pptx
PRADEEP ABOTHU
 
Health Planning in india - Unit 03 - CHN 2 - GNM 3RD YEAR.ppsx
Priyanshu Anand
 
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
A PPT on Alfred Lord Tennyson's Ulysses.
Beena E S
 
THE TAME BIRD AND THE FREE BIRD.pptxxxxx
MarcChristianNicolas
 
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
Isharyanti-2025-Cross Language Communication in Indonesian Language
Neny Isharyanti
 
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 

C-Language Unit-2

  • 1. Modularizing and Reusing of code through Functions Calculation of area of Circle is separated into a separate module from Calculation of area of Ring and the same module can be reused for multiple times. /* program to find area of a ring /* program to find area of a ring */ */ #include<stdio.h> #include<stdio.h> float area(); Function Declaration int main() Repeated & Reusable int main() { blocks of code { float a1,a2,a,r1,r2; float a1,a2,a; a1 = area(); Function Calls printf("Enter the radius : "); a2 = area(); scanf("%f",&r1); a = a1- a2; a1 = 3.14*r1*r1; printf("Area of Ring : %.3fn", a); printf("Enter the radius : "); } scanf("%f",&r2); float area() Function Definition a2 = 3.14*r2*r2; { a = a1- a2; float r; printf("Area of Ring : %.3fn", printf("Enter the radius : "); scanf("%f", &r); a); return (3.14*r*r); } }
  • 2. A Function is an independent, reusable module of statements, that specified by a name. This module (sub program) can be called by it’s name to do a specific task. We can call the function, for any number of times and from anywhere in the program. The purpose of a function is to receive zero or more pieces of data, operate on them, and return at most one piece of data. A Called Function receives control from a Calling Function. When the called function completes its task, it returns control to the calling function. It may or may not return a value to the caller. The function main() is called by the operating system; main() calls other functions. When main() is complete, control returns to the operating system. value of ‘p’ is copied to loan’ value of ‘n’ is copied to terms’ int main() { value of ‘r’ is copied to ‘iRate’ int n; float p, r, si; printf(“Enter Details of Loan1:“); float calcInterest(float loan , int terms , float iRate ) { scanf( “%f %d %f”, &p, &n, &r); float interest; The block is si =calcInterest( p, n , r ); interest = ( loan * terms * iRate )/100; executed printf(“Interest : Rs. %f”, si); return ( interest ); printf(“Enter Details of Loan2:“); } } Called Function value of ‘interest’ is assigned to ‘si ’ Calling Function Process of Execution for a Function Call
  • 3. int main() { int n1, n2; printf("Enter a number : "); scanf("%d",&n1); printOctal(n1); readPrintHexa(); printf("Enter a number : "); scanf("%d",&n2); 1 2 printOctal(n2); printf(“n”); } 3 7 Flow of 8 void printOctal(int n) { Control printf("Number in octal form : %o n", n); in } Multi-Function 6 void readPrintHexa() Program { int num; printf("Enter a number : "); scanf("%d",&num); printHexa(num); printf(“n”); } 4 void printHexa(int n) 5 { printf("Number in Hexa-Decimal form : %x n",n); }
  • 4. /* Program demonstrates function calls */ Function-It’s Terminology #include<stdio.h> int add ( int n1, int n2 ) ; Function Name int main(void) { Declaration (proto type) of Function int a, b, sum; printf(“Enter two integers : ”); Formal Parameters scanf(“%d %d”, &a, &b); Function Call sum = add ( a , b ) ; printf(“%d + %d = %dn”, a, b, sum); return 0; Actual Arguments } Return Type /* adds two numbers and return the sum */ Definition of Function int add ( int x , int y ) { Parameter List used in the Function int s; s = x + y; Return statement of the Function return ( s ); } Return Value
  • 5. Categories of Functions /* using different functions */ void printMyLine() Function with No parameters int main() { and No return value int i; { for(i=1; i<=35;i++) printf(“%c”, ‘-’); float radius, area; printf(“n”); printMyLine(); } printf(“ntUsage of functionsn”); printYourLine(‘-’,35); void printYourLine(char ch, int n) radius = readRadius(); { Function with parameters area = calcArea ( radius ); and No return value printf(“Area of Circle = %f”, int i; for(i=1; i<=n ;i++) printf(“%c”, ch); area); printf(“n”); } } float calcArea(float r) float readRadius() Function with return { Function with return { value & No parameters float r; float a; value and parameters printf(“Enter the radius : “); a = 3.14 * r * r ; scanf(“%f”, &r); return ( a ) ; return ( r ); } } Note: ‘void’ means “Containing nothing”
  • 6. Static Local Variables #include<stdio.h> void area() Visible with in the function, float length, breadth; { created only once when int main() static int num = 0; function is called at first { time and exists between printf("Enter length, breadth : "); float a; function calls. scanf("%f %f",&length,&breadth); num++; area(); a = (length * breadth); perimeter(); printf(“nArea of Rectangle %d : %.2f", num, a); printf(“nEnter length, breadth: "); } scanf("%f %f",&length,&breadth); area(); void perimeter() perimeter(); { } int no = 0; float p; no++; External Global Variables p = 2 *(length + breadth); Scope: Visible across multiple printf(“Perimeter of Rectangle %d: %.2f",no,p); functions Lifetime: exists till the end } of the program. Automatic Local Variables Enter length, breadth : 6 4 Scope : visible with in the function. Area of Rectangle 1 : 24.00 Lifetime: re-created for every function call and Perimeter of Rectangle 1 : 20.00 destroyed automatically when function is exited. Enter length, breadth : 8 5 Area of Rectangle 2 : 40.00 Perimeter of Rectangle 1 : 26.00 Storage Classes – Scope & Lifetime
  • 7. File1.c File2.c #include<stdio.h> extern float length, breadth ; float length, breadth; /* extern base , height ; --- error */ float rectanglePerimeter() static float base, height; { int main() float p; { p = 2 *(length + breadth); float peri; return ( p ); printf("Enter length, breadth : "); } scanf("%f %f",&length,&breadth); rectangleArea(); peri = rectanglePerimeter(); External Global Variables printf(“Perimeter of Rectangle : %f“, peri); Scope: Visible to all functions across all printf(“nEnter base , height: "); files in the project. scanf("%f %f",&base,&height); Lifetime: exists till the end of the triangleArea(); program. } void rectangleArea() { float a; Static Global Variables a = length * breadth; Scope: Visible to all functions with in printf(“nArea of Rectangle : %.2f", a); the file only. } Lifetime: exists till the end of the void triangleArea() { program. float a; a = 0.5 * base * height ; printf(“nArea of Triangle : %.2f", a); Storage Classes – Scope & Lifetime }
  • 8. #include<stdio.h> Preprocessor Directives void showSquares(int n) A function { calling itself #define - Define a macro substitution if(n == 0) #undef - Undefines a macro is #ifdef - Test for a macro definition return; Recursion #ifndef - Tests whether a macro is not else defined showSquares(n-1); #include - Specifies the files to be included printf(“%d “, (n*n)); #if - Test a compile-time condition } #else - Specifies alternatives when #if int main() test fails { #elif - Provides alternative test facility showSquares(5); #endif - Specifies the end of #if } #pragma - Specifies certain instructions #error - Stops compilation when an error occurs Output : 1 4 9 16 25 # - Stringizing operator addition showSquares(1) execution ## - Token-pasting operator of showSquares(2) of function function calls showSquares(3) calls Preprocessor is a program that to showSquares(4) in processes the source code before it call- reverse passes through the compiler. stack showSquares(5) main() call-stack