Preprocessor
Download
1 / 14

Preprocessor - PowerPoint PPT Presentation


  • 90 Views
  • Uploaded on

Preprocessor. All preprocessor directives or commands begin with a #. E.g. #include <stdio.h> C program → Modified C program → Object Code Can appear anywhere in the program No “;” in the end. preprocessor. compiler. Preprocessor Directives. Macro definition #define, #undef

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Preprocessor' - kiona


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Preprocessor
Preprocessor

  • All preprocessor directives or commands begin with a #.

    • E.g. #include <stdio.h>

      C program → Modified C program → Object Code

  • Can appear anywhere in the program

  • No “;” in the end

preprocessor

compiler


Preprocessor directives
Preprocessor Directives

  • Macro definition

    • #define, #undef

  • File inclusion

    • #include

  • Conditional Compilation

    • #if, #ifdef, #ifndef, #elseif, #else

  • Others


Advantages
Advantages

  • Easy to

    • Develop program

    • Read programs

    • Modify programs

  • C code more transportable between different machine architectures


Define
#define

  • To define constants or any macro substitution.

        #define <macro> <replacement name>  

    E.g.

      #define FALSE 0

    #define TRUE !FALSE

  • To undefined a macro.

    E.g. #undef FALSE

    • A macro must be undefined before being redefined to a different value.


Define functions
Define Functions

  • E.g. To get the maximum of two variables:

    #define max(A,B) ( (A) > (B) ? (A):(B))

  • If in the C code:    x = max(q+r,s+t);

  • After preprocessing:

       x = ( (q+r) > (s+t) ? (q+r) : (s+t));


File inclusion
File inclusion

  • #include directive

    • Include the contents of another file at the point where the directive appears.

  • Why need file inclusion

    • Use built-in functions

      • E.g., printf(), rand();

    • Reuse code

struct date{

int day;

char month[10];

int year;

};

struct date{

int day;

char month[10];

int year;

};

struct date today;

#include “defTime.h”

struct date today;

defTime.h

Your code


File inclusion formats
File inclusion formats

  • #include <file>

    • Used for system header files

    • File contain function prototypes for library functions

      • <stdlib.h> , <math.h> , etc

  • #include "file"

    • Used for header files of your own program

      • looks for a file in the current directory first

      • then system directories if not found


Standard c libraries
Standard C libraries

  • Build-in with your compiler

  • Detailed information

    • http://www.utas.edu.au/infosys/info/documentation/C/CStdLib.html

  • stdio.h

    • core input and output capabilities of C

      • printf function

      • scanf function


Math library functions
Math Library Functions

  • Math library functions

    • perform common mathematical calculations

      • E.g. exp(), pow(), sqrt(), fabs(), sin(), cos().

    • #include <math.h>

  • Format for calling functions

    • FunctionName(argument, …, argument);

      • All math functions return data type double

    • E.g.: printf( "%.2f", sqrt( 900.0 ) );

    • Arguments may be constants, variables, or expressions

  • Compile

    • gcc yourfilename.c –lm –o yourfilename.exe


Stdlib h
stdlib.h

  • A variety of utility functions

    • rand function

      • A function to generate a pseudo-random integer number

      • Return value is in the range 0 to RAND_MAX

      • Example:

        #include <stdlib.h>

        int i = rand();

    • memory allocation

    • process control


String h
string.h

  • All the string handling functions

    • strcpy

    • strcat

    • strcmp


Custom header files
Custom header files

  • Steps for creating custom header files

    • Create a file with function prototypes

    • Save as a .h file. E.g.: filename.h

    • Load in other files with

      • #include "filename.h"

  • Advantage

    • Reuse functions and data structure declaration


Conditional compilation
Conditional compilation

  • Useful when

    • machine-dependencies

    • Debugging

    • setting certain options at compile-time.

  • Expressions

    • #if expression

    • #ifdef expression (same as #if defined )

    • #ifudef

    • #elif and #else

    • #endif


Examples
Examples

  • Example: write programs that are portable to several machines or operating systems

    • #if defined(WINDOWS)

    • #elif defined(LINUX)

    • #elif defined(SOLARIS)

    • #endif

  • Example: Providing a default definition for a macro

    • #ifndef BUFFER_SIZE

    • #define BUFFER_SIZE 256

    • #endif


ad