SlideShare a Scribd company logo
Preprocessor



  Preprocessor,
     math.h
     stdlib.h
Preprocessor
 Preprocessor
  – Permits to define simple macros that are evaluated and
    expanded prior to compilation.
  – Commands begin with a ‘#’.
  –   #define : defines a macro             [Ex]    #include <stdio.h>
  –   #undef : removes a macro definition           #define PI 3.14159
  –   #include : insert text from file
  –   #if : conditional based on value of expression
  –   #ifdef : conditional based on whether macro defined
  –   #ifndef : conditional based on whether macro is not defined
  –   #else : alternative
  –   #elif : conditional alternative
  –   defined() : preprocessor function: 1 if name defined, else 0
       #if defined(__NetBSD__)

                                                                         2
Preprocessor
 #include <filename> or #include “filename”
   – Include contents of filename in this position (not modify your
     source file, but make a new temporary file just before compile)
   – <> is used if filename is in the system default directory
     (Most of the standard header files are in the default directory)
   – “” is used if filename is not in the default directory
     (Write the path to filename if it is not in the current directory)



[Ex]
                                     Include stdio.h which is in the default
       #include <stdio.h>
                                     directory
       #include “./test/file.h”

                                     Include file.h in test directory.




                                                                               3
Preprocessor
 Header file
   – Header files with the extension “.h” are included by #include


 Contents of Header file
   – Prototype of Function
   – ‘extern’ global variables     Refer to Modulization
   – type definition, etc.


 Typical header files
   – stdio.h, stdlib.h, math.h, etc.




                                                                     4
Preprocessor
 #define [identifier] [replacement]
       – replaces any occurrence of identifier in the rest of the code by
         replacement.
       – replacement can be an expression, a statement, a block or simply
         anything.


[Ex]

       #define LIMIT 100            Preprocessor regards LIMIT as 100,
       #define PI 3.14159           PI as 3.141592.




                                                                            5
Preprocessor
 #define
   #include <stdio.h>
   #define LIMIT 100
   #define PI 3.14159
   void main(void)
   {
      printf( “%d, %fn”, LIMIT, PI ) ;
   }
                                          Preprocessor makes a temporary file.

   …
                                       After that, compile the temporary file.
   void main(void)
   {
      printf( “%d, %fn”, 100, 3.14159 ) ;
   }


                                                                                 6
Preprocessor
      Example

#include <stdio.h>   void main(void)
                     {
#define YELLOW 0         int color ;
#define RED    1
#define BLUE   2         for( color = YELLOW ; color <= BLUE ; color++ ) {
                             switch( color ) {
                             case YELLOW : printf( “Yellown” ) ; break ;
                             case RED : printf( “Redn” ) ; break ;
                             case BLUE : printf( “Bluen” ) ; break ;
                             }
                         }
                     }

                                                                             7
Preprocessor
 Macro function: Declare a function by using #define

              #define multiply(a,b) ((a)*(b))

              void main() {
                  int c = multiply(3,2) ;
              }

   – Compiled after the code modified by preprocessor as follows.

              void main() {
                  int c = ((3)*(2)) ;
              }




                                                                    8
Preprocessor
 Macro function: Be careful! Simple replacement!!
   – what will happen?

               #define multiply(a,b) a*b

               void main() {
                   int c = multiply(3+1,2+2) ;
               }

   – Compiled after the code modified by preprocessor as follows.

               void main() {
                   int c = 3+1*2+2 ;
               }

   – Use ‘()’ for safety.

                                                                    9
Math functions

  (math.h)
Mathematical Functions

 Mathematical Functions
  – sqrt(), pow(), exp(), log(), sin(), cos(), tan(), etc.
  – Include the Header file <math.h>
  – All the math functions have argument with double type and
    return value with double type.

        [Ex] double sin(double); /* argument is the angle in radians */
            double pow(double, double);


  – Give “-lm” flag when you compile this with Unix(gcc).


        [Ex] gcc filename.c -lm


                                                                          11
Mathematical Functions

[Ex]   #include <stdio.h>
       #include <math.h>

       #define PI 3.1415926

       int main() {
           double r = PI / (2*90);        /* 180 radian = 1 degree */
           int i;

           for(i=0; i<=90; i+=5) {
                 printf("cos(%d) = %ft", i, cos(r*i));
                 printf("sin(%d) = %ft", i, sin(r*i));
                 printf("tan(%d) = %fn", i, tan(r*i));
           } cos(0) = 1.000000    sin(0) = 0.000000 tan(0) = 0.000000
       }     …
             cos(45) = 0.707107   sin(45) = 0.707107   tan(45) = 1.000000
             …
             cos(90) = 0.000000   sin(90) = 1.000000   tan(90) = 37320539.634355

                                                                                   12
Misc. functions

  (stdlib.h)
Miscellaneous functions
 Standard Headers you should know about:
  – stdio.h: file and console (also a file) IO
      • perror, printf, open, close, read, write, scanf, etc.
  – stdlib.h: common utility functions
      • malloc, calloc, strtol, atoi, etc
  – string.h: string and byte manipulation
      • strlen, strcpy, strcat, memcpy, memset, etc.
  – math.h: math functions
      • ceil, exp, floor, sqrt, etc.




                                                                14
Miscellaneous functions
 Standard Headers you should know about:
  – ctype.h: character types
      • isalnum, isprint, isupport, tolower, etc.
  – errno.h: defines errno used for reporting system errors
  – signal.h: signal handling facility
      • raise, signal, etc
  – stdint.h: standard integer
      • intN_t, uintN_t, etc
  – time.h: time related facility
      • asctime, clock, time_t, etc.




                                                              15
Miscellaneous functions

 Miscellaneous Functions
  – atoi(), rand(), srand()
  – <stdlib.h>: Common Utility Functions
  – atoi(“String”): Convert string to integer
     int a = atoi( “1234” ) ;

  – rand() : Generate random number
     int a = rand() ;

  – srand( Initial Value ) : Initialize random number generator
     srand( 3 ) ;



                                                                  16
Miscellaneous functions

 Ex.: Print 10 random numbers
      #include <stdio.h>
      #include <stdlib.h>

      int main() {
                                       Run this Program twice
         for(i=0; i<10; i++)
           printf(“%dn”, rand() ) ;
      }

 Print different random number in every execution
      #include <stdio.h>
      #include <stdlib.h>
      #include <time.h>

      int main() {
         srand( (int)time(NULL) ) ;
         for(i=0; i<10; i++)
           printf(“%dn”, rand() ) ;
      }
                                                                17

More Related Content

What's hot (20)

PDF
6 c control statements branching &amp; jumping
MomenMostafa
 
PDF
Boost.Python - domesticating the snake
Sławomir Zborowski
 
PDF
Pydiomatic
rik0
 
PPTX
C - ISRO
splix757
 
PDF
MP in Clojure
Kent Ohashi
 
PPTX
Unit 3
GOWSIKRAJAP
 
PDF
Python Functions (PyAtl Beginners Night)
Rick Copeland
 
PDF
Free Monads Getting Started
Kent Ohashi
 
PDF
Functions in python
Ilian Iliev
 
PPT
C++ tutorial
sikkim manipal university
 
PPTX
ภาษาซี
kramsri
 
PPT
C++totural file
halaisumit
 
PDF
c programming
Arun Umrao
 
PPTX
ภาษาซี
kramsri
 
PPT
Paradigmas de Linguagens de Programacao - Aula #4
Ismar Silveira
 
PDF
Implementing Software Machines in C and Go
Eleanor McHugh
 
PPTX
Learn c++ (functions) with nauman ur rehman
Nauman Rehman
 
PDF
c programming
Arun Umrao
 
PDF
Diving into byte code optimization in python
Chetan Giridhar
 
PDF
Implementing Software Machines in Go and C
Eleanor McHugh
 
6 c control statements branching &amp; jumping
MomenMostafa
 
Boost.Python - domesticating the snake
Sławomir Zborowski
 
Pydiomatic
rik0
 
C - ISRO
splix757
 
MP in Clojure
Kent Ohashi
 
Unit 3
GOWSIKRAJAP
 
Python Functions (PyAtl Beginners Night)
Rick Copeland
 
Free Monads Getting Started
Kent Ohashi
 
Functions in python
Ilian Iliev
 
ภาษาซี
kramsri
 
C++totural file
halaisumit
 
c programming
Arun Umrao
 
ภาษาซี
kramsri
 
Paradigmas de Linguagens de Programacao - Aula #4
Ismar Silveira
 
Implementing Software Machines in C and Go
Eleanor McHugh
 
Learn c++ (functions) with nauman ur rehman
Nauman Rehman
 
c programming
Arun Umrao
 
Diving into byte code optimization in python
Chetan Giridhar
 
Implementing Software Machines in Go and C
Eleanor McHugh
 

Similar to 3 1. preprocessor, math, stdlib (20)

PPT
C
Anuja Lad
 
PPT
Csdfsadf
Atul Setu
 
PDF
C Programming Tutorial - www.infomtec.com
M-TEC Computer Education
 
PDF
7 functions
MomenMostafa
 
PPTX
C ISRO Debugging
splix757
 
PPT
L4 functions
mondalakash2012
 
PDF
Python basic
Saifuddin Kaijar
 
PPT
Function
Sukhdarshan Singh
 
PPTX
Chapter 02 functions -class xii
Praveen M Jigajinni
 
PPTX
ppl unit 3.pptx ppl unit 3 usefull can understood
divasivavishnu2003
 
PDF
Getting Started Cpp
Long Cao
 
DOCX
UNIT 4-HEADER FILES IN C
Raj vardhan
 
PDF
Functions
SANTOSH RATH
 
DOCX
Mouse programming in c
gkgaur1987
 
PDF
Python idiomatico
PyCon Italia
 
PPT
CIntro_Up_To_Functions.ppt;uoooooooooooooooooooo
muhammedcti23240202
 
PPT
270_1_CIntro_Up_To_Functions.ppt 0478 computer
vynark1
 
PPTX
Programming Fundamentals lecture 5
REHAN IJAZ
 
Csdfsadf
Atul Setu
 
C Programming Tutorial - www.infomtec.com
M-TEC Computer Education
 
7 functions
MomenMostafa
 
C ISRO Debugging
splix757
 
L4 functions
mondalakash2012
 
Python basic
Saifuddin Kaijar
 
Chapter 02 functions -class xii
Praveen M Jigajinni
 
ppl unit 3.pptx ppl unit 3 usefull can understood
divasivavishnu2003
 
Getting Started Cpp
Long Cao
 
UNIT 4-HEADER FILES IN C
Raj vardhan
 
Functions
SANTOSH RATH
 
Mouse programming in c
gkgaur1987
 
Python idiomatico
PyCon Italia
 
CIntro_Up_To_Functions.ppt;uoooooooooooooooooooo
muhammedcti23240202
 
270_1_CIntro_Up_To_Functions.ppt 0478 computer
vynark1
 
Programming Fundamentals lecture 5
REHAN IJAZ
 
Ad

More from 웅식 전 (20)

PDF
15 3. modulization
웅식 전
 
PDF
15 2. arguement passing to main
웅식 전
 
PDF
14. fiile io
웅식 전
 
PDF
13. structure
웅식 전
 
PDF
12 2. dynamic allocation
웅식 전
 
PDF
12 1. multi-dimensional array
웅식 전
 
PDF
11. array & pointer
웅식 전
 
PDF
10. pointer & function
웅식 전
 
PDF
9. pointer
웅식 전
 
PDF
7. variable scope rule,-storage_class
웅식 전
 
PDF
6. function
웅식 전
 
PDF
5 2. string processing
웅식 전
 
PDF
5 1. character processing
웅식 전
 
PDF
15 1. enumeration, typedef
웅식 전
 
PDF
4. loop
웅식 전
 
PDF
3 2. if statement
웅식 전
 
PDF
3 1. preprocessor, math, stdlib
웅식 전
 
PDF
2 3. standard io
웅식 전
 
PDF
2 2. operators
웅식 전
 
PDF
2 1. variables & data types
웅식 전
 
15 3. modulization
웅식 전
 
15 2. arguement passing to main
웅식 전
 
14. fiile io
웅식 전
 
13. structure
웅식 전
 
12 2. dynamic allocation
웅식 전
 
12 1. multi-dimensional array
웅식 전
 
11. array & pointer
웅식 전
 
10. pointer & function
웅식 전
 
9. pointer
웅식 전
 
7. variable scope rule,-storage_class
웅식 전
 
6. function
웅식 전
 
5 2. string processing
웅식 전
 
5 1. character processing
웅식 전
 
15 1. enumeration, typedef
웅식 전
 
4. loop
웅식 전
 
3 2. if statement
웅식 전
 
3 1. preprocessor, math, stdlib
웅식 전
 
2 3. standard io
웅식 전
 
2 2. operators
웅식 전
 
2 1. variables & data types
웅식 전
 
Ad

3 1. preprocessor, math, stdlib

  • 1. Preprocessor Preprocessor, math.h stdlib.h
  • 2. Preprocessor  Preprocessor – Permits to define simple macros that are evaluated and expanded prior to compilation. – Commands begin with a ‘#’. – #define : defines a macro [Ex] #include <stdio.h> – #undef : removes a macro definition #define PI 3.14159 – #include : insert text from file – #if : conditional based on value of expression – #ifdef : conditional based on whether macro defined – #ifndef : conditional based on whether macro is not defined – #else : alternative – #elif : conditional alternative – defined() : preprocessor function: 1 if name defined, else 0 #if defined(__NetBSD__) 2
  • 3. Preprocessor  #include <filename> or #include “filename” – Include contents of filename in this position (not modify your source file, but make a new temporary file just before compile) – <> is used if filename is in the system default directory (Most of the standard header files are in the default directory) – “” is used if filename is not in the default directory (Write the path to filename if it is not in the current directory) [Ex] Include stdio.h which is in the default #include <stdio.h> directory #include “./test/file.h” Include file.h in test directory. 3
  • 4. Preprocessor  Header file – Header files with the extension “.h” are included by #include  Contents of Header file – Prototype of Function – ‘extern’ global variables Refer to Modulization – type definition, etc.  Typical header files – stdio.h, stdlib.h, math.h, etc. 4
  • 5. Preprocessor  #define [identifier] [replacement] – replaces any occurrence of identifier in the rest of the code by replacement. – replacement can be an expression, a statement, a block or simply anything. [Ex] #define LIMIT 100 Preprocessor regards LIMIT as 100, #define PI 3.14159 PI as 3.141592. 5
  • 6. Preprocessor  #define #include <stdio.h> #define LIMIT 100 #define PI 3.14159 void main(void) { printf( “%d, %fn”, LIMIT, PI ) ; } Preprocessor makes a temporary file. … After that, compile the temporary file. void main(void) { printf( “%d, %fn”, 100, 3.14159 ) ; } 6
  • 7. Preprocessor  Example #include <stdio.h> void main(void) { #define YELLOW 0 int color ; #define RED 1 #define BLUE 2 for( color = YELLOW ; color <= BLUE ; color++ ) { switch( color ) { case YELLOW : printf( “Yellown” ) ; break ; case RED : printf( “Redn” ) ; break ; case BLUE : printf( “Bluen” ) ; break ; } } } 7
  • 8. Preprocessor  Macro function: Declare a function by using #define #define multiply(a,b) ((a)*(b)) void main() { int c = multiply(3,2) ; } – Compiled after the code modified by preprocessor as follows. void main() { int c = ((3)*(2)) ; } 8
  • 9. Preprocessor  Macro function: Be careful! Simple replacement!! – what will happen? #define multiply(a,b) a*b void main() { int c = multiply(3+1,2+2) ; } – Compiled after the code modified by preprocessor as follows. void main() { int c = 3+1*2+2 ; } – Use ‘()’ for safety. 9
  • 10. Math functions (math.h)
  • 11. Mathematical Functions  Mathematical Functions – sqrt(), pow(), exp(), log(), sin(), cos(), tan(), etc. – Include the Header file <math.h> – All the math functions have argument with double type and return value with double type. [Ex] double sin(double); /* argument is the angle in radians */ double pow(double, double); – Give “-lm” flag when you compile this with Unix(gcc). [Ex] gcc filename.c -lm 11
  • 12. Mathematical Functions [Ex] #include <stdio.h> #include <math.h> #define PI 3.1415926 int main() { double r = PI / (2*90); /* 180 radian = 1 degree */ int i; for(i=0; i<=90; i+=5) { printf("cos(%d) = %ft", i, cos(r*i)); printf("sin(%d) = %ft", i, sin(r*i)); printf("tan(%d) = %fn", i, tan(r*i)); } cos(0) = 1.000000 sin(0) = 0.000000 tan(0) = 0.000000 } … cos(45) = 0.707107 sin(45) = 0.707107 tan(45) = 1.000000 … cos(90) = 0.000000 sin(90) = 1.000000 tan(90) = 37320539.634355 12
  • 13. Misc. functions (stdlib.h)
  • 14. Miscellaneous functions  Standard Headers you should know about: – stdio.h: file and console (also a file) IO • perror, printf, open, close, read, write, scanf, etc. – stdlib.h: common utility functions • malloc, calloc, strtol, atoi, etc – string.h: string and byte manipulation • strlen, strcpy, strcat, memcpy, memset, etc. – math.h: math functions • ceil, exp, floor, sqrt, etc. 14
  • 15. Miscellaneous functions  Standard Headers you should know about: – ctype.h: character types • isalnum, isprint, isupport, tolower, etc. – errno.h: defines errno used for reporting system errors – signal.h: signal handling facility • raise, signal, etc – stdint.h: standard integer • intN_t, uintN_t, etc – time.h: time related facility • asctime, clock, time_t, etc. 15
  • 16. Miscellaneous functions  Miscellaneous Functions – atoi(), rand(), srand() – <stdlib.h>: Common Utility Functions – atoi(“String”): Convert string to integer int a = atoi( “1234” ) ; – rand() : Generate random number int a = rand() ; – srand( Initial Value ) : Initialize random number generator srand( 3 ) ; 16
  • 17. Miscellaneous functions  Ex.: Print 10 random numbers #include <stdio.h> #include <stdlib.h> int main() { Run this Program twice for(i=0; i<10; i++) printf(“%dn”, rand() ) ; }  Print different random number in every execution #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand( (int)time(NULL) ) ; for(i=0; i<10; i++) printf(“%dn”, rand() ) ; } 17