CSC_Final_Study_Guide_1

CSC_Final_Study_Guide_1 - Preprocessing and Macros-Common...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Preprocessing and Macros-Common mistakes of dynamic memory allocation:- (header) file inclusion (<stdio.h>)-Use pointer to memory not previously allocated statically or dynamicl- Macro substitution (#define PI 3.14)-Use a pointer to read-only memory (i.e. code)- Conditional compilation (#ifdef DEBUG ... #endif)-Use a pointer to memory that has been freed or deallocated-A preprocessing command is terminated at the end of the line unless continued with a \-Forgetting malloc does not initialize memory (#define PI \-Writing past the end of statically or dynamically allocated memory 3.14)-Freeing dynamically UNallocated memory r * PI == r * 3.14-Dont free the same memory twice #define TWOPI 2*PI Const, Enum, Typedef, Booleans, Bitfields, and Unions-Do not terminate #define by ; or it becomes part of token_sequence-The const keyword indicates to the compiler a value should not change-If a #define contains multiple statements, put the whole thing in braces const float pi = 3.14;-The token_sequence doesnt need to be a valid statement or expression. const struct person person1 = {Nate, 72, 190, M}; #define TIMES2 *2-Pointers or variables can be constant, or both-#define can take parameters or arguments (like functions) char * cp = &c; #define DIAM(radius) 2*PI*(radius) char * const cp = &c; (constant pointer)-You do not have to declare the type of argument for a macro like you do functions...
View Full Document

This note was uploaded on 04/28/2009 for the course CSC 230 taught by Professor Freeh during the Spring '08 term at N.C. State.

Page1 / 2

CSC_Final_Study_Guide_1 - Preprocessing and Macros-Common...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online