Gün geçmiyorki yeni birşey çıkmasın (C içerir)

Başlatan ArifAhmet, 08 Şubat 2016, 23:21:38

ArifAhmet

Keil'de dolanirken karsima cikan garip birsey gordum.

#define USART_DRV_NUM 6

#define USART_BAUDRATE 9600

#define _USART_Driver_(n) Driver_USART##n
#define USART_Driver_(n) _USART_Driver_(n)

extern ARM_DRIVER_USART USART_Driver_(USART_DRV_NUM);
#define ptrUSART (&USART_Driver_(USART_DRV_NUM))


Kod normal gorunuyor ama surada bir gariplik var;
#define _USART_Driver_(n) Driver_USART##n


Ilerideki projelerimde bayagi isime yarayacak bu.

Ayrica internette hicbirsey bulamadim bununla ilgili
Yaşasın Open Source!

Cemre.

Hocam kullanımına dair bir örnek verme şansınız var mı? Ben anlayamadım da.

ArifAhmet

#2
Simdi ben _USART_Driver_ macrosunu kullanarak onceden define edilmis bir usart modulunu secebiliyorum. Ornegin

_USART_Driver_(4)


Bu USART4 demek.

Hal uzerinden ornek verirsem:

UART_HandleTypeDef huart1;

huart1.Instance =_USART_Driver_(4);


mesaj birleştirme:: 08 Şubat 2016, 23:44:06

Ne oldugunu buldum "Token Pasting" deniyormus buna
Yaşasın Open Source!