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

Slides:



Advertisements
Verwante presentaties

Advertisements


Universiteit Leiden Inleiding programmeren in C++ Life Science & Technology 16 februari

Instructie Programmeren Task 1 5JJ70. Task 1.1: Hello World •Klik naast de laatste accolade in de grijze kantlijn om een breakpoint neer te zetten, anders.
Arduino project.
Gestructureerd programmeren in C
1 Device driver. 2 Hardware Operating Systeem Prog1Prog2 System calls/ API Device drivers Gebruiker afschermen van de hardware.
PROS2 Les 11 Programmeren en Software Engineering 2.
GESPRG Les 14 Gestructureerd programmeren in C. 174 Details! The devil is in the details.
Enumerate typedef struct union functiepointers 1.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 5.
Instructie Programmeren Task 1 5JJ70. Task 1.1: Hello World Klik naast de laatste accolade in de grijze kantlijn om een breakpoint neer te zetten, anders.
1 SOCS Hoofdstuk 1 Computerarchitectuur. 2 Overzicht Eenvoudig C Arrays Functies Records Dynamische gegevenstructuren Macro’s C.
Flow controle Keuzes maken. Het if-statement Soms moet code alleen in bepaalde situaties uit gevoerd worden Hiervoor heeft C de if-else constructie: if(voorwaarde1){
Algoritmen en Datastructuren (ALDAT) EVMINX4 Dagdeel 2.
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
GESPRG Les 12 Gestructureerd programmeren in C. 152 Huiswerk Uitwerking void reverse(int a[], int n) { int first = 0, last = n - 1; while (first < last)
GESPRG Les 7 Gestructureerd programmeren in C. 92 Verwisselen Schrijf een functie waarmee twee int variabelen verwisseld kunnen worden. void wissel(int.
Workshop PHP Een productencatalogus. Case Uitgever van software wil webpagina met productgegevens publiceren op basis van catalogus. Het gaat momenteel.
Algoritmiek Object-georiënteerd Programmeren
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
P. 1 Vakgroep Informatietechnologie Scanf voorbeeld #include int main(void) { int i=-1,j=-1,k=-1,l=-1; int b; b=scanf("%d %d %d %d",&i,&j,&k,&l); printf("res=%d.
Deel I: Programmeertaal C 6. Arrays en Pointers
P. 1 Vakgroep Informatietechnologie Structuur Deel II C++ Classes Namespaces Type casting Reference types Constructors en Destructors Memory Management.
P. 1 Deel I: Programmeertaal C 4. Functies en Macro’s Prof.Dr.Ir. Filip De Turck.
PEMSY1http:// 1  Herhaling: combineren van assembler en C  Herhaling: subroutine  geen nieuwe opgave Voorbeeld tentamen:
Looking at Code Size and Performance Kevin Muys.  Hoe efficiënt is C++ vergeleken met C  Hoe beïnvloed C++ het benodigde geheugen  Oplossingen voor.
Technische universiteit eindhoven 1 1 OO2-project: Beeldbewerking G. de Haan EH9.27.
Chris Pollentier 18 / 12 / 2002 De LOGO taalwereld.
Combinatorische logica
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 7 onze.
C++ C++ als een verbetering van C Abstracte datatypen met classes Constructoren en destructoren Subklassen binding van functies 1.
Voor u de volgende schermen verspreidt … U hebt de poster verspreidt. De betrokken personen weten dus waar ze uw tips kunnen terugvinden. Dan verspreidt.
Tircms02-p les 4 Preprocessor In- en uitvoer Diversen.
Tircms03-p les 6 Templates. Functietemplates void verwissel(int &x, int &y); { int w=x;x=y;y=w;} Dezelfde functie voor meerdere types heet een functietemplate.
Introductie tot GoF patterns in Java
P. 1 Deel I: Programmeertaal C 7. Andere verschillen met Java Prof.Dr.Ir. Filip De Turck.
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Arrays en pointers lichtkrant op het ARM bordje.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  programma draaien vanuit ROM.
Tircms02-p les 3 Functies Strings Structuren. Functies 1. main() 2. { int k; k = 10 ; printf(“%d\n”,fac(k)); } 3. int fac(n) int n; 4. { int f; f= 1;
Tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie.
tircms02-p les 1 Operating Systems practicum
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
VPEMSY1, D3ECPT2 : ARM Assembler 1 Hogeschool Utrecht / Electrical Engineering & Design 1  Herhaling: CMP, CMN,
PEMSY1http:// 1  Herhaling nieuwe instructies van vorige week  nieuw: combineren van assembler en C  oefeningen: assembler.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
Powerpoint chrisje Vriendschap.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Maak, uitgaande van een MIDI file, een (klein) programma.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  Een (vaste) melodie spelen op de PC speaker 
Tircms03-p les 1 C++ voor C-kenners Voor Technische Informatica.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail: Sheets.
De laatste essentiele dingen.  Classes ◦ Syntax ◦ Constructors & Destructors  Header & Source Files ◦ Waar gebruiken we dit voor  Compiler Theorie.
HTML & CSS Samen gebruiken. Verschil HTML – Structuur CSS – Styling Twee verschillende dingen – Loskoppelen!
- copyright 2015 Natuurlijke getallen - 1 / NATUURLIJKE GETALLEN – 1 0, 1, 2, 3,…99,…
- copyright 2015 Breuken & rationale getallen - 1 /
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  de track structuur van een MIDI file interpreteren.
Codetuts Academy Les 2 Module 2a Php Fundamentals 1.
- copyright 2015 Algebraïsche vaardigheden - 1 / ALGEBRAÏSCHE VAARDIGHEDEN – 1.
C++ Les 1: introductie. Programmeren Programma’s scripts Websites libraries (Sound, GUI, netwerking…)
Gameprogrammeren: Objecten en geheugen
Door Dimitri Verspecht
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
C++ • C++ als een verbetering van C • Abstracte datatypen met classes • Constructoren en destructoren • Subklassen • binding van functies 1.
Machten – 1
Tinpro015b-les4 Klassen.

C-Programmeren Voor BPE Avionica 20 november 2018.
Software Development fundamentals
Gameprogrammeren: Arrays
Transcript van de presentatie:

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

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!

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

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’

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