Czy wolisz polską wersję strony elektroda?
Nie, dziękuję Przekieruj mnie tamvonar napisał:możesz zmienić naKod: C / C++Zaloguj się, aby zobaczyć kodKod: C / C++Zaloguj się, aby zobaczyć kod
vonar napisał:Jak rozumiem korzystasz z AVR-GCC.
Return 0 może zostać - program i tak wyląduje w nieskończonej pętli z zablokowanymi przerwaniami.
adamza napisał:A nie można jakos zakończyć programu? Tak żeby po jego wykonaniu układ nie robił juz nic?
dondu napisał:To prawda, osiągnięcie końca funkcji main jest równoznaczne z return 0, jednak moim zdaniem return jaśniej określa intencje programisty.vonar napisał:Jak rozumiem korzystasz z AVR-GCC.
Return 0 może zostać - program i tak wyląduje w nieskończonej pętli z zablokowanymi przerwaniami.
To i bez Return 0 się stanie, więc return jest zbędny.
dondu napisał:Tak jest, pętla nieskończona napisana explicite jest lepszym pomysłem niż powrót z funkcji main (w swoim pierwszym poście też wspomniałem, że to nie najlepszy pomysł), jednak muszę sprostować – taki zapis pozostawia wątpliwości człowiekowi, jednak dla kompilatora jest jednoznaczny: ma on wywołać funkcję exit, która jest definiowana przez avr-libc jak wspomniałem wcześniej.Natomiast świadoma pętla nieskończone w programie to tzw. "dobre praktyki" nie pozostawiające kompilatorowi, żadnych wątpliwości jak ma wyglądać skompilowany program.
vonar napisał:... taki zapis pozostawia wątpliwości człowiekowi, jednak dla kompilatora jest jednoznaczny: ma on wywołać funkcję exit, która jest definiowana przez avr-libc jak wspomniałem wcześniej.
dondu napisał:Słowa „wątpliwości kompilatora” sugerują zachowanie niezdefiniowane (undefined behavior – może się stać cokolwiek i nie musi to być nigdzie udokumentowane), podczas gdy mamy tutaj działanie zależne od implementacji – (działanie przewidywalne, udokumentowane, ale nieprzenośne, więc przez to potencjalnie kłopotliwe). Nie zmienia to faktu, że obu lepiej unikać, ale Twoje słowa mogły wprowadzać początkujących w błąd, sugerując, że działania programu z powrotem z main nie można przewidzieć, stąd moje sprostowanie.nie pozostawiające kompilatorowi, żadnych wątpliwości jak ma wyglądać skompilowany program.