cemalb
Üye
- Katılım
- 9 Eki 2019
- Mesajlar
- 126
- Puanları
- 1
Herkese Kolay Gelsin
Mikrodenetleyici promgramlarken kütüphane dosyalarını daha iyi yazabilmek için önceden yazılmış profesyonel
kütüphaneleri inceliyorum. Elimde AVR için uart kütüphanesi var. Orda gördüğüm ve aklıma takılan bir iki nokta var.
Net bir cevap bulamadım.
Mesela;
1-Versiyon sorgulamasını neden yapıyoruz?
#if (__GNUC__ * 100 + __GNUC_MINOR__) < 405
#error "This library requires AVR-GCC 4.5 or later, update to newer AVR-GCC compiler !"
#endif
gibi.
2- Bazı sabitleri değişken gibi değilde, #define ile tanımlamanın ne gibi bir artısı var? Daha doğru olanı mı bu?
Neden?
#ifndef UART_TX_BUFFER_SIZE
#define UART_TX_BUFFER_SIZE 32
#endif
gibi.
3-Bu kütüphanede .c de ki bir fonksiyonu .h 'ta "extern" etmiş. Örneğin .c deki "void uart_init(unsigned int baudrate){}"
fonksiyonunu .h 'ta "extern void uart_init(unsigned int baudrate);" şeklinde neden extern etmiş ki?
Sadece "void uart_init(unsigned int baudrate);" şeklinde yapsak aynı şey değilmi?
Mikrodenetleyici promgramlarken kütüphane dosyalarını daha iyi yazabilmek için önceden yazılmış profesyonel
kütüphaneleri inceliyorum. Elimde AVR için uart kütüphanesi var. Orda gördüğüm ve aklıma takılan bir iki nokta var.
Net bir cevap bulamadım.
Mesela;
1-Versiyon sorgulamasını neden yapıyoruz?
#if (__GNUC__ * 100 + __GNUC_MINOR__) < 405
#error "This library requires AVR-GCC 4.5 or later, update to newer AVR-GCC compiler !"
#endif
gibi.
2- Bazı sabitleri değişken gibi değilde, #define ile tanımlamanın ne gibi bir artısı var? Daha doğru olanı mı bu?
Neden?
#ifndef UART_TX_BUFFER_SIZE
#define UART_TX_BUFFER_SIZE 32
#endif
gibi.
3-Bu kütüphanede .c de ki bir fonksiyonu .h 'ta "extern" etmiş. Örneğin .c deki "void uart_init(unsigned int baudrate){}"
fonksiyonunu .h 'ta "extern void uart_init(unsigned int baudrate);" şeklinde neden extern etmiş ki?
Sadece "void uart_init(unsigned int baudrate);" şeklinde yapsak aynı şey değilmi?