De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Vakgroep Informatietechnologie – SoftwareOntwikkeling 1 SoftwareOntwikkeling 1 Conditionele compilatie in C met de macropreprocessor.

Verwante presentaties


Presentatie over: "Vakgroep Informatietechnologie – SoftwareOntwikkeling 1 SoftwareOntwikkeling 1 Conditionele compilatie in C met de macropreprocessor."— Transcript van de presentatie:

1 Vakgroep Informatietechnologie – SoftwareOntwikkeling 1 SoftwareOntwikkeling 1 Conditionele compilatie in C met de macropreprocessor

2 Macro’s – Conditionele compilatie Vakgroep Informatietechnologie – SoftwareOntwikkeling 1 p. 2 Conditionele compilatie C preprocessor Verwerkt lijnen met # vooraan Vóór compilatie verwerkt Gebruik:  Inclusie libraries #include  Definitie constanten #define PI 3.14  Debug informatie #define DEBUG #ifdef DEBUG printf(“Debuginfo”); #endif  ‘echte’ macro’s #define X(i) x##i #define PRINT(i) printf("%d ",X(i))  Conditionele compilatie!

3 Macro’s – Conditionele compilatie Vakgroep Informatietechnologie – SoftwareOntwikkeling 1 p. 3 Conditionele compilatie Soms nodig in meerdere.c-files zelfde datatype (uit.h file) nodig via #include “naam.h” Meerdere keren zelfde type includeren => error: Meerdere keren zelfde functie declareren => toegelaten Hoe afschermen tegen dubbele inclusie? #ifndef NAAM_TYPE #define NAAM_TYPE … /* definitie data(types) */ #endif Preprocessor zal.h file enkel includeren als de constante NAAM_TYPE nog niet gedefinieerd is => slechts 1 inclusie van het datatype

4 Macro’s – Conditionele compilatie Vakgroep Informatietechnologie – SoftwareOntwikkeling 1 p. 4 Conditionele compilatie: voorbeeld grootvader.h struct foo { int member; }; vader.h #include "grootvader.h“ kind.c #include "grootvader.h" #include “vader.h“  Compileren geeft: error C2011: ‘foo’: ‘struct type’ see declaration of ‘foo’

5 Macro’s – Conditionele compilatie Vakgroep Informatietechnologie – SoftwareOntwikkeling 1 p. 5 Conditionele compilatie: voorbeeld (2) Oplossing: grootvader.h #ifndef H_GROOTVADER #define H_GROOTVADER struct foo { int member; }; #endif Gebruik voor elke #ifndef-define- endif constructie een andere naam om conflicten te vermijden Gemakkelijkst: naam van de header file Met H_ ervoor


Download ppt "Vakgroep Informatietechnologie – SoftwareOntwikkeling 1 SoftwareOntwikkeling 1 Conditionele compilatie in C met de macropreprocessor."

Verwante presentaties


Ads door Google