1 / 14

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. Macro definition #define, #undef

kiona
Download Presentation

Preprocessor

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Preprocessor Directives • Macro definition • #define, #undef • File inclusion • #include • Conditional Compilation • #if, #ifdef, #ifndef, #elseif, #else • Others

  3. Advantages • Easy to • Develop program • Read programs • Modify programs • C code more transportable between different machine architectures

  4. #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.

  5. 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));

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. string.h • All the string handling functions • strcpy • strcat • strcmp

  12. 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

  13. 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

  14. 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

More Related