Zmienna w #define

0

Witam!
Mam następujący problem:
Mam takie makra:
#define USART(x) SUSART(x)
#define SUSART(x) (USART##x)

i po wywołaniu makra ze zmienna np. USART(zmienna) dostaje USARTzmienna. Czy jest możliwość że będzie to działać w taki sposób że jeśli zmienna = 1 to dostane USART1? W jaki sposób mogę to uzyskać?
Z góry dzięki za odpowiedź.
Pozdrawiam

2

NIE MA TAKIEJ MOŻLIWOŚCI.
Makra są interpretowane jeszcze przed kompilacją i na tym koniec. Jeśli liczysz na to, że wyciągniesz w ten sposób zawartość zmiennej do makra, to powinieneś od nowa poczytać o podstawach.
Przypuszczalnie to powinieneś poczytać o tablicach, a nie wymyślać jakiś durnych makr.
Jako newbie nie powinieneś używać makr wcale. jak przestaniesz być newbie to nadal powinieneś ich unikać.

0

Czy da się uzyskać podobny efekt nie używając makr?

0

Tak, tablica wskaźników do funkcji.

0

Tablice. USART[0], USART[1], USART[zmienna] itd.

1 użytkowników online, w tym zalogowanych: 0, gości: 1