Preprocesor

Opublikowane: 24/11/2014

w kategorii Zasoby.

Dlaczego nie makra?

Makra preprocesora nie są zalecane dla C++. Używaj ich tylko jeśli musisz (do debugowania lub śledzenia wykonania).

Do/While w makrach

Kiedy musisz podać kilka instrukcji w makrze istnieje pewien trik polegający na zdefiniowaniu w taki sposób makra aby można go było używać jak zwykłej funkcji. Ten trik polega na użyciu jednokrokowej pętli do/while która kończy się na pierwszym sprawdzeniu jak poniżej:

#define MY_MACRO(a,b) do { wykonaj1(a); wykonaj2(a,b); } while(0)

Z taką konstrukcją możesz użyć swojego makra w instrukcjach if/else jak poniżej:

if (warunek)
   MY_MACRO(2,8);
else
   inne_przetwarzanie();

Więcej znajdziesz tutaj.

Makra ze zmienną liczbą argumentów (ang. variadic macros)

Używane kiedy Twoje makro musi obsłużyć zmienną liczbę argumentów.

Udostępnij

obserwuj