SlideShare uma empresa Scribd logo
1 de 8
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

Mais conteúdo relacionado

Mais procurados

Simple c program
Simple c programSimple c program
Simple c program
Ravi Singh
 
Mesics lecture 5 input – output in ‘c’
Mesics lecture 5   input – output in ‘c’Mesics lecture 5   input – output in ‘c’
Mesics lecture 5 input – output in ‘c’
eShikshak
 
Dti2143 chapter 5
Dti2143 chapter 5Dti2143 chapter 5
Dti2143 chapter 5
alish sha
 

Mais procurados (19)

Functions and pointers_unit_4
Functions and pointers_unit_4Functions and pointers_unit_4
Functions and pointers_unit_4
 
Simple c program
Simple c programSimple c program
Simple c program
 
Unit2 C
Unit2 CUnit2 C
Unit2 C
 
Control Statements, Array, Pointer, Structures
Control Statements, Array, Pointer, StructuresControl Statements, Array, Pointer, Structures
Control Statements, Array, Pointer, Structures
 
Functions
FunctionsFunctions
Functions
 
C programming Workshop
C programming WorkshopC programming Workshop
C programming Workshop
 
Function in c
Function in cFunction in c
Function in c
 
lets play with "c"..!!! :):)
lets play with "c"..!!! :):)lets play with "c"..!!! :):)
lets play with "c"..!!! :):)
 
C programming function
C  programming functionC  programming function
C programming function
 
Mesics lecture 5 input – output in ‘c’
Mesics lecture 5   input – output in ‘c’Mesics lecture 5   input – output in ‘c’
Mesics lecture 5 input – output in ‘c’
 
Dti2143 chapter 5
Dti2143 chapter 5Dti2143 chapter 5
Dti2143 chapter 5
 
Input And Output
 Input And Output Input And Output
Input And Output
 
What is c
What is cWhat is c
What is c
 
C lab-programs
C lab-programsC lab-programs
C lab-programs
 
7 functions
7  functions7  functions
7 functions
 
Concepts of C [Module 2]
Concepts of C [Module 2]Concepts of C [Module 2]
Concepts of C [Module 2]
 
Programming For Problem Solving Lecture Notes
Programming For Problem Solving Lecture NotesProgramming For Problem Solving Lecture Notes
Programming For Problem Solving Lecture Notes
 
Function in c
Function in cFunction in c
Function in c
 
C Programming Storage classes, Recursion
C Programming Storage classes, RecursionC Programming Storage classes, Recursion
C Programming Storage classes, Recursion
 

Semelhante a C-Language Unit-2

โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
Little Tukta Lita
 
function in in thi pdf you will learn what is fu...
function in  in thi pdf you will learn   what                           is fu...function in  in thi pdf you will learn   what                           is fu...
function in in thi pdf you will learn what is fu...
kushwahashivam413
 

Semelhante a C-Language Unit-2 (20)

Unit2 C
Unit2 C Unit2 C
Unit2 C
 
Function in C program
Function in C programFunction in C program
Function in C program
 
C Programming Language Part 7
C Programming Language Part 7C Programming Language Part 7
C Programming Language Part 7
 
Unit 4 (1)
Unit 4 (1)Unit 4 (1)
Unit 4 (1)
 
Function in c program
Function in c programFunction in c program
Function in c program
 
Functions struct&union
Functions struct&unionFunctions struct&union
Functions struct&union
 
Array Cont
Array ContArray Cont
Array Cont
 
Functions
FunctionsFunctions
Functions
 
L25-L26-Parameter passing techniques.pptx
L25-L26-Parameter passing techniques.pptxL25-L26-Parameter passing techniques.pptx
L25-L26-Parameter passing techniques.pptx
 
function_v1.ppt
function_v1.pptfunction_v1.ppt
function_v1.ppt
 
function_v1.ppt
function_v1.pptfunction_v1.ppt
function_v1.ppt
 
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
 
Functions in C
Functions in CFunctions in C
Functions in C
 
Function in c
Function in cFunction in c
Function in c
 
CHAPTER 6
CHAPTER 6CHAPTER 6
CHAPTER 6
 
Fucntions & Pointers in C
Fucntions & Pointers in CFucntions & Pointers in C
Fucntions & Pointers in C
 
function in in thi pdf you will learn what is fu...
function in  in thi pdf you will learn   what                           is fu...function in  in thi pdf you will learn   what                           is fu...
function in in thi pdf you will learn what is fu...
 
C- Programming Assignment 4 solution
C- Programming Assignment 4 solutionC- Programming Assignment 4 solution
C- Programming Assignment 4 solution
 
An imperative study of c
An imperative study of cAn imperative study of c
An imperative study of c
 
C programs
C programsC programs
C programs
 

Mais de kasaragadda srinivasrao (7)

C Language Unit-8
C Language Unit-8C Language Unit-8
C Language Unit-8
 
C Language Unit-7
C Language Unit-7C Language Unit-7
C Language Unit-7
 
C Language Unit-6
C Language Unit-6C Language Unit-6
C Language Unit-6
 
C Language Unit-5
C Language Unit-5C Language Unit-5
C Language Unit-5
 
C Language Unit-4
C Language Unit-4C Language Unit-4
C Language Unit-4
 
C Language Unit-3
C Language Unit-3C Language Unit-3
C Language Unit-3
 
Coupon tango site demo
Coupon tango site demoCoupon tango site demo
Coupon tango site demo
 

Último

Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
Chris Hunter
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
heathfieldcps1
 

Último (20)

INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Role Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptxRole Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptx
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 

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