CS201- Introduction to Programming- Lecture 23

Post on 18-Dec-2014

12 views 1 download

Tags:

description

Virtual University Course CS201- Introduction to Programming Lecture No 23 Instructor's Name: Dr. Naveed A. Malik Course Email: cs201@vu.edu.pk

transcript

Introduction to Introduction to ProgrammingProgramming

Lecture 23Lecture 23

Preprocessors and Preprocessors and Header filesHeader files

Today’s LectureToday’s Lecture

Preprocessor DirectivesPreprocessor Directives Header FilesHeader Files MacrosMacros

PreprocessPreprocessoror

#include <iostream.h>#include <iostream.h>

##

#include#include #include <iostream.h>#include <iostream.h> #include <stdlib.h>#include <stdlib.h> #include <fstream.h>#include <fstream.h> #include <stream.h>#include <stream.h>

5:10 to 5:23

5:24 to 5:41

Re-locatable Re-locatable ExecutableExecutable

MyHeader.MyHeader.hh

#include “MyHeader.h”#include “MyHeader.h”

#include #include <iostream.h><iostream.h>

#define#define

#define PI #define PI 3.1415923.141592

Preprocessor Preprocessor DirectivesDirectives #if#if #else#else #endif#endif #elif#elif #ifdef#ifdef #ifndef#ifndef #error#error

Preprocessor Preprocessor DirectivesDirectives

#ident#ident #import#import #line#line #machine#machine #system#system #warning#warning

Example Example

#ifdef PI#ifdef PI

# define PI# define PI

# ifdef PI# ifdef PI

# define DEBUG# define DEBUG

# ifdef DEBUG# ifdef DEBUG

Conditional Conditional CompilationCompilation

Macro Macro TranslationTranslation

#undef #undef DEBUGDEBUG

#include #include <conio.h><conio.h>

Consol Input Output Consol Input Output

   

 

#include #include <conio.h><conio.h>#include #include

<conio.c><conio.c>

int getche int getche ( ) ;( ) ;

Get Character Get Character With EchoWith Echo

#ifdef __cplusplus#ifdef __cplusplusextern "C" {extern "C" {#endif#endif

- -- -- -- -

#ifdef __cplusplus#ifdef __cplusplus}}#endif#endif

MacroMacro

#define SQUARE ( X ) X * X#define SQUARE ( X ) X * Xmain ( )main ( ){{

int i = 5 , j ;int i = 5 , j ; ::

}}

Example 1Example 1

j =j =SQUARE ( i ) ; SQUARE ( i ) ; i * i ;i * i ;

Example 2 Example 2 ##define SQUARE ( X ) X * Xdefine SQUARE ( X ) X * Xmain ( )main ( ){{

int i = 5 , j = 10 , k ;int i = 5 , j = 10 , k ;::

k =k =}}

SQUARE ( i + j ) ; SQUARE ( i + j ) ; i + j * i + j ;i + j * i + j ;

Example 3Example 3#define SQUARE(X) #define SQUARE(X)

(X)*(X)(X)*(X)

main ( )main ( )

{{

int i = 5 , j = 10 , k ;int i = 5 , j = 10 , k ;

k =k =

}}

SQUARE ( i + j ) ;SQUARE ( i + j ) ;( i + j ) * ( i + j ) ;( i + j ) * ( i + j ) ;

OverheadOverhead

Code BloatCode Bloat

Example 4Example 4#define PI 3.14159#define PI 3.14159#define CIRCLEAREA ( X )#define CIRCLEAREA ( X )main ( )main ( ){{

float radius ;float radius ;cout << “ Enter radius of Circle Area : ” ;cout << “ Enter radius of Circle Area : ” ;cin >> radius ;cin >> radius ;cout << “ Area of Circle Area is ” cout << “ Area of Circle Area is ”

<<<<

}}

PI * X * XPI * X * X( ( PI ) * ( X ) * ( X ) )( ( PI ) * ( X ) * ( X ) )

CIRCLEAREA ( radius ) ;CIRCLEAREA ( radius ) ;( ( PI ) * ( radius ) * ( radius ) ) ;( ( PI ) * ( radius ) * ( radius ) ) ;CIRCLEAREA ( 2 * radius ) ;CIRCLEAREA ( 2 * radius ) ;

Header FilesHeader Files

Header FileHeader File #include #include <iostream.h><iostream.h>

#include <stdlib.h>#include <stdlib.h> #include <stdio.h>#include <stdio.h> #include <string.h>#include <string.h>

In Next LectureIn Next Lecture

Memory AllocationMemory Allocation