Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdMerel Vos Laatst gewijzigd meer dan 9 jaar geleden
1
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Arrays en pointers lichtkrant op het ARM bordje
2
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 2 Array declaratie Een aantal geheugenplekken van het zelfde type Het aantal ligt (in C) vast bij het compileren Declaratie: type naam[ aantal ]: float cijfers[ 100 ]; char naam[ 132 ]; int schaakbord[ 8 ][ 8 ]; Gebruik: naam[ index ]: for( i=0; i<100; i++) cijfers[ i ] = 6.7;
3
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 3 Array gebruik Gebruik: naam[ index ]: for( i=0; i<100; i++) cijfers[ i ] = 6.7; Het zal de compiler worst wezen als jij dom bent: cijfers[ - 1 ] = cijfers[ 100 ]; Als parameter hoeft je alleen te vermelden dat het een array is (niet de lengte): int length( char regel[] ){ … }
4
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 4 C arrays, C pointers een char array is een verzameling (0..n) characters behalve bij het definieren wordt de lengte *niet* genoemd! een array wordt geindexeerd: a[ i ] een int pointer wijst naar een verzameling (0..n) ints naar hoeveel wordt nergens genoemd! een pointer wordt gedereferenced: *a met een pointer kan je rekenen, de ‘teleenheid’ is de omvang van het basistype (bv int)
5
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 5 C arrays, C pointers gebruik van een array char a[ 10 ]; for( i = 0; i < 10; i++ ){ a[ i ] = ’x’; } gebruik van een pointer char *p =...; for( i = 0; i < 10; i++ ){ *p = ’x’; p++; }
6
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 6 C pointers een pointer wijst uitzichzelf (nog) nergens naar int *p; *p = 15; /* geen idee waar de pointer heen wijst! */ een pointer kan wijzen naar een ‘gewone’ variabele int i; int *p = &i; *p = 15; /* OK */ p++; int *p = 15; /* fout! */
7
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 7 een array is een pointer? int a[ 100 ]; int *p; p = &a[ 0 ]; p = a; a = p; a[ 10 ] = 12; *( p + 10 ) = 12; *( a + 10 ) = 10; p[ 10 ] = 10; 1 regel is fout, de rest is goed!
8
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 8 drie mogelijke implementaties van strlen a) int strlen( char s[] ){ int i = 0; while (s[i] != ‘\0’) i++; return i; } b) int strlen( char *s ){ int i = 0; while( *( s + i ) != ‘\0’){ i++ } return i; } c) int strlen( char *s ){ int i = 0; while( *s != ‘\0’){ s++; i++ } return i; }
9
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 9 Hello world op ARM bordje (lcd.zip) #include "ark.h" int main(){ ARK_CH_LCD_init(); for(;;){ ARK_CH_LCD_clear(); ARK_wait_us( 500 * 1000 ); ARK_CH_LCD_string_write( "Hello world !" ); ARK_wait_us( 500 * 1000 ); } return 0; }
10
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 10 Opdracht: ’lichtkrant’ op ARM bordje Maak op een scrollende tekst zichtbar op het ARM bordje. Doe dit als volgt: -Neem een van de strlen functies over -Roep in je main (na het initialiseren van de LCD), in een oneindige lus, de functie lichtkrant aan, met als parameter de tekst die je wilt laten zien. Die tekst is langer dan het display
11
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 11 Opdracht: ’lichtkrant’ op ARM bordje -De functie lichtkrant krijgt dus een char * mee. -Hij maakt eerst het LCD leeg. -Hij roept ARK_CH_LCD_string_write aan met die string, en wacht even. -Vervolgens checkt hij of alle characters er op pasten, zo ja dan wacht hij nog wat langer en keert dan terug (return). -Als nog niet alle characters er op pasten: schuif de pointer een stap op en weer schrijven.
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.