cs201- introduction to programming- lecture 23
DESCRIPTION
Virtual University Course CS201- Introduction to Programming Lecture No 23 Instructor's Name: Dr. Naveed A. Malik Course Email: [email protected]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