DOC PREVIEW
UF CGS 3460 - Preprocessor

This preview shows page 1-2-3-4-5 out of 14 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

PreprocessorPreprocessor DirectivesAdvantages#defineDefine FunctionsFile inclusionFile inclusion formatsStandard C librariesMath Library Functionsstdlib.hstring.hCustom header filesConditional compilationExamplesPreprocessor•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 endpreprocessor compilerPreprocessor Directives•Macro definition–#define, #undef•File inclusion–#include•Conditional Compilation–#if, #ifdef, #ifndef, #elseif, #else•OthersAdvantages•Easy to–Develop program –Read programs –Modify programs •C code more transportable between different machine architectures#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•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•#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 codedefTime.hstruct 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;Your codeFile 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 foundStandard 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 functionMath 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.exestdlib.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 controlstring.h•All the string handling functions –strcpy –strcat –strcmpCustom 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 declarationConditional 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–#endifExamples•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


View Full Document

UF CGS 3460 - Preprocessor

Download Preprocessor
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Preprocessor and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Preprocessor 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?