Preprocessor Directive in C

VarunTiwari1 124 views 31 slides Mar 29, 2021
Slide 1
Slide 1 of 31
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31

About This Presentation

TO UNDERSTAND about Preprocessor Directives IN C.
TO LEARN ABOUT #define.
TO LEARN ABOUT how to use macro with arguments.
To learn about file inclusion.
To learn about Conditional Compilation.
To learn about #pragma in C
TO LEARN ABOUT #if define and #ifndefine in C.
TO LEARN ABOUT #undef in C.
...


Slide Content

PAPER: INTRODUCTION PROGRAMMING LANGUAGE USING C
PAPER ID: 20105
PAPER CODE: BCA 105
DR. VARUN TIWARI
(ASSOCIATE PROFESSOR)
(DEPARTMENT OF COMPUTER SCIENCE)
BOSCO TECHNICAL TRAINING SOCIETY,
DON BOSCO TECHNICAL SCHOOL, OKHLA ROAD , NEW DELHI

C PREPROCESSOR
DIRECTIVE

OBJECTIVES
IN THIS CHAPTER YOU WILL LEARN:
1.TO UNDERSTAND ABOUT PREPROCESSOR DIRECTIVES IN C.
2.TO LEARN ABOUT #DEFINE.
3.TO LEARN ABOUT HOW TO USE MACRO WITH ARGUMENTS.
4.TO LEARN ABOUT FILE INCLUSION.
5.TO LEARN ABOUT CONDITIONAL COMPILATION.
6.TO LEARN ABOUT #PRAGMA IN C
7.TO LEARN ABOUT #IF DEFINE AND #IFNDEFINEIN C.
8.TO LEARN ABOUT #UNDEFIN C.
9.TO LEARN ABOUT # AND ## IN C LANGUAGE.

PREPROCESSORDIRECTIVE:CPROVIDEAVERYUSEFULFACILITYOFMACROSUBSTITUTION.THISENABLES
THEPROGRAMMERTOWRITECODEWHOISMOREREADABLETHANTHECRYPTICWAY.THECCOMPILER
HASAPREPROCESSORWHICHNEEDSTHESOURCECODESANDTHUSSOMEPROCESSINGBEFORE
PASSINGINTOTHECOMPILERFORTHEPURPOSEOFCOMPILATION.THEREAREAFEWPROCESSOR
COMMANDWHICHITCANINTERPRETER.THEYARENOTANORMALCCOMMAND.THEREARESIGNEDBY
PUTTING#INTHEFIRSTCOLUMNFOLLOWEDBYAKEYWORD.WHICHSHOULDAVALIDONEEXCEPTED
BYTHEPREPROCESSOR.
CPREPROCESSORISAPROGRAMTHATPROCESSESOURPROGRAMBEFOREITISPASSEDTOTHE
COMPILER.BEFORECPROGRAMISCOMPILED,ITISPASSEDTHROUGHANOTHERPROGRAMCALLED
“PREPROCESSOR”.THECPROGRAMISKNOWNAS‘SOURCECODE’.THEPREPROCESSORWORKSONTHE
SOURCECODEASPERTHEPREPROCESSORDIRECTIVESUSEDINTHESOURCECODE.EACHPREPROCESSOR
DIRECTIVEBEGINSWITHA#SYMBOL.
(A).MACROEXPANSION
(B).FILEINCLUSION
(C).CONDITIONALCOMPILATION
(D).MISCELLANEOUSDIRECTIVES

#DEFINE:ITISUSEDTODEFINEACONSTANTORMACRO.ITPROVIDEAFACILITYFORMACROSUBSTITUTION.WECANDEFINEANIDENTIFIERAND
ATTACHEDASTRINGTOIT.THEPREPROCESSORSCANTHECOMPLETEPROGRAM&REPLACEALLTHEOCCURRENCEOFTHEIDENTIFIERWITHTHESTRING
ATTACHEDTOITWITHTHEIDENTIFIERUSEDARERECOMMENDEDTOBEWRITTENINUPPERCASELETTER.
EXAMPLE-:
#include<stdio.h>
#include<conio.h>
#definemax20
voidmain(){
charname[max];
clrscr();
printf("\nenteryourname-:");
gets(name);
//puts(name);
printf("mynameis-:%s",name);
getch();}
Output:
enteryourname-:varunTiwari
Mynameis-:varuntiwari

#DEFINEWORKSLIKEMACRO:
EXAMPLE:
#include<stdio.h>
#include<conio.h>
#definePRINTprintf(“\nMynameisRahul.Iam22yearsOld”);
voidmain(){
clrscr();
PRINT;
getch();
}
Output:
My name is Rahul. I am 22 years Old.

MACROWITHARGUMENTS:THEMACROTHATWEHAVEUSEDSOFARARECALLEDSIMPLEMACRO.
MACROSCANHAVEARGUMENTS,JUSTASFUNCTIONSCAN.

FILEINCLUSION:ITSIMPLYCAUSESTHEENTIRECONTENTSOFFILENAMETOBEINSERTEDINTOTHE
SOURCECODEWHEREWEHAVEUSED#INCLUDE.ITISCOMMONFORTHEFILESTHATARETOBE
INCLUDEDTOHAVEA.HEXTENSION.
SYNTAX:#include“filename”
#include“minmax.h”

CONDITIONALCOMPILATION:WECAN,IFWEWANT,HAVETHECOMPILERSKIPOVERPARTOFA
SOURCECODEBYINSERTINGTHEPREPROCESSINGCOMMANDS.CPROVIDEYOUANOOF
CONDITIONALCOMPILATIONPREPROCESSORDIRECTIVE.
1.#IF#ENDIF
2.#IF#ELSE#ENDIF
3.#IF#ELIF#ENDIF
4.#IF#ELSE#IF#ENDIF
5.#IFDEFAND#IFNDEF
IFMACRONAMEHASBEEN#DEFINE,THEBLOCKOFCODEWILLBEPROCESSEDASUSUAL,
OTHERWISENOT.
SYNTAX:#IFEXPRESSION
STATEMENT1;
STATEMENT2;
STATEMENT3;
#ENDIF

II.#IF#ELSE
SYNTAX:#IFEXPRESSION
STATEMENT1;
STATEMENT2;
STATEMENT3;
#ELSE
STATEMENT1;
STATEMENT2;
STATEMENT3;
#ENDIF

III.#IF#ELIF#ENDIF
SYNTAX:#IFEXPRESSION
STATEMENT1;
STATEMENT2;
STATEMENT3;
#ELIF
STATEMENT1;
STATEMENT2;
STATEMENT3;
#ENDIF

IV.#IF#ELSE#IF#ENDIF
SYNTAX:#IFEXPRESSION
STATEMENT;
#ELSE
#IFEXPRESSION
STATEMENT;
#ELSE
#IFEXPRESSION
STATEMENT;
#ENDIF
#ENDIF
#ENDIF

V.#IFDEFAND#IFNDEF:IFTHEMACRONAMEISDEFINEDTHENITRETURNTRUE(NONZERO)ELSEIF
THEMACRONAMEISNOTDEFINEDITRETURNFALSE(ZERO).
SYNTAX:#IFDEFMACRONAME
STATEMENT;
#ENDIF
SYNTAX:#IFNDEFMACRONAME
STATEMENT;
#ENDIF

MISCELLANEOUSDIRECTIVES:CPROVIDEYOUSOMEOTHERDIRECTIVEWHICHISVERYHELPFULFOR
USER.
1.#UNDEF
2.#PRAGMA
3.#AND##
1.#UNDEF:ONESOMEOCCASIONITMAYBEDESIRABLETOCAUSEADEFINEDNAMETOBECOME
UNDEFINEDTHISCANBEACCOMPLISHEDBYMEANSOFTHE#UNDEFDIRECTIVE.
SYNTAX:
#UNDEF(MACRONAME)

2.#PRAGMA:THE#PRAGMAISANIMPLEMENTATIONORIENTEDDIRECTIVETHATALLOWSUSTO
SPECIFYVARIOUSINSTRUCTIONTOBEGIVENTOTHECOMPILER.USING#PRAGMA,YOUCANVARY
ONECOMPILERTOANOTHERCOMPILERTHEREARECERTAINPROGRAMAVAILABLEWITHMICROSOFT
CCOMPILERWHICHDEALWITHFORMATTINGSOURCELISTING&PLACINGCOMMANDSINTHEOBJECT
FILEGENERATEDBYTHECOMPILER.TURBOCCOMPILERHASGOTAPRAGMAWHICHALLOWSYOUTO
WRITEASSEMBLYSTATEMENTINYOURCPROGRAM.DECLARATIONOFPRAGMAGIVENBELOW:
1.#PRAGMASTARTUPAND#PRAGMAEXIT:THESEDIRECTIVESALLOWUSTOSPECIFYFUNCTIONS
THATARECALLEDUPONPROGRAMSTARTUP(BEFOREMAIN())ORPROGRAMEXIT(JUSTBEFORE
THEPROGRAMTERMINATES).THEYUSAGEISASFOLLOW:
2.#PRAGMAWARN:ONCOMPILATIONTHECOMPILERREPORTSERRORSANDWARNINGSINTHE
PROGRAM.IFANYERRORSHAVETOBECORRECTED.WARNINGS,ONTHEOTHERHAND,OFFER
THEPROGRAMMER AHINTORSUGGESTIONTHATSOMETHINGMAYBEWRONGWITHA
PARTICULARPIECEOFCODE.

SYNTAX:
#PRAGMASTARTUPFUNCTIONNAME
#PRAGMAEXITFUNCTIONNAME
EXAMPLE:
#PRAGMASTARTUPADD()
#PRAGMAEXITSUB()

2.#:THE#OPERATORISCALLEDSTRINGIZINGOPERATOR.THISOPERATORISUSEDTOCONVERT
ANYTEXTINTOSTRINGWITHOUTUSINGANYQUOTES.
EXAMPLE:

2.##:THE##OPERATORISCALLEDTOKENPASTINGOPERATOR.THISOPERATORISUSEDTOADDOR
CONCATETWOTOKENSINTOONESTRING.
EXAMPLE:

THANK YOU