Voor de guru's... (althans, ik kon het niet terug vinden in mijn textbook)
Stel je define een array en met c++ kan dat op verschillende manieren:
Globaal (dus ook buiten compilation unit zichtbaar):
Local (alleen zichtbaar vanuit compilation unit):
Stel nu dat we hem const maken:
Dan blijkt dat de array eigenlijk local is (alleen zichtbaar vanuit compilation unit)
Om een hem global (dus ook buiten compilation unit zichtbaar) te maken, moeten we gebruik maken van extern:
Waarom is dat precies zo gedaan? waarom is "const unsigned char" niet gewoon global en "static const unsigned char" niet gewoon local. Waarom deze uitzondering dmv extern?
Alvast bedankt
Stel je define een array en met c++ kan dat op verschillende manieren:
Globaal (dus ook buiten compilation unit zichtbaar):
C:
1
2
3
| unsigned char somearray[]={ ..... }; |
Local (alleen zichtbaar vanuit compilation unit):
C:
1
2
3
| static unsigned char somearray[]={ ..... }; |
Stel nu dat we hem const maken:
C:
1
2
3
| const unsigned char somearray[]={ ..... }; |
Dan blijkt dat de array eigenlijk local is (alleen zichtbaar vanuit compilation unit)
Om een hem global (dus ook buiten compilation unit zichtbaar) te maken, moeten we gebruik maken van extern:
C:
1
2
3
| extern const unsigned char somearray[]={ ..... }; |
Waarom is dat precies zo gedaan? waarom is "const unsigned char" niet gewoon global en "static const unsigned char" niet gewoon local. Waarom deze uitzondering dmv extern?
Alvast bedankt