Mam taki kod przykładowy:
kompilacja:
i kompilator rzuca:
Jak dam w odwrotnej kolejności, czyli
nie mam komunikatu. Ciekawe jest to że w jednym programie mam właśnie odwrotnie i dla atmegi8 komunikatu brak w obu przypadkach, natomiast dla atmegi328 jest.
Zdawało mi się że wystarczy dodać pliki nagłówkowe od interrupt, aby funkcja była zadeklarowana. Skąd to zachowanie kompilatora? I czy w ogóle to jest dobrze? Albo co jest źle?
.
Kod: C / C++
kompilacja:
Cytat:gcc -DF_CPU=11059200UL -Os -std=c89 -pedantic -Wall -Wextra -mmcu=atmega8 -c test.c -o test.o
i kompilator rzuca:
Cytat:
avr-gcc -DF_CPU=11059200UL -Os -std=gnu99 -Wstrict-prototypes -pedantic -Wall -Wextra -mmcu=atmega8 -c test.c -o test.o
In file included from test.c:8:
test.c:24:5: warning: conflicting types for '__vector_1'
24 | ISR(INT0_vect){
| ^~~~~~~~~
In file included from /usr/avr/include/avr/io.h:99,
from test.c:5:
test.c:21:2: note: previous implicit declaration of '__vector_1' was here
21 | INT0_vect();
Jak dam w odwrotnej kolejności, czyli
Kod: C / C++
nie mam komunikatu. Ciekawe jest to że w jednym programie mam właśnie odwrotnie i dla atmegi8 komunikatu brak w obu przypadkach, natomiast dla atmegi328 jest.
Zdawało mi się że wystarczy dodać pliki nagłówkowe od interrupt, aby funkcja była zadeklarowana. Skąd to zachowanie kompilatora? I czy w ogóle to jest dobrze? Albo co jest źle?
.