Hallo Forum,
ich hätte mal eine Frage zur richtigen Verwendung von "extern".
Mein Szenario:
Ich habe eine main.c, in der ich ein Menü implementiert habe.
Desweiteren habe ich eine display.h / display.c, in der die
Initialisierung eines GLCD stattfindet sowie diverse zusätzliche
Display-Funktion implementiert sind.
Sowohl main.c als auch display.c benötigen Zugriff auf eine Referenz zu
einer u8g2 (Grafik-LCD Library) Instanz.
Mein Code (minimiert):
1 | display.h
|
2 |
|
3 | #include "u8g2/u8g2.h"
|
4 |
|
5 | extern u8g2_t u8g2;
|
6 |
|
7 | void initDisplay();
|
1 | display.c
|
2 |
|
3 | #include "display.h"
|
4 |
|
5 | void initDisplay() {
|
6 | u8g2_Setup_ssd1309_128x64_noname0_f(&u8g2, U8G2_R2, u8x8_byte_4wire_sw_spi, u8x8_avr_gpio_and_delay);
|
7 | ...
|
8 | }
|
1 | main.c
|
2 |
|
3 | #include "display.h"
|
4 |
|
5 | u8g2_t u8g2;
|
6 |
|
7 | void main() {
|
8 | initDisplay();
|
9 | }
|
Kann mir jemand sagen, ob die Verwendung von 'extern' so korrekt ist?
Das Programm wird fehlerfrei kompiliert, allerdings wird es das auch,
wenn ich 'extern' in der main.c verwende anstatt in der display.h.
Wie herum ist es richtig?
Vielen Dank für eure Hilfe.
Mario