C/Powszechne praktyki: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Zdzichobot (dyskusja | edycje) m poprawa nawigacji |
→Konwencje pisania makr: poprawka niezgodnych z prawdą, zależnych od implementacji detali |
||
Linia 80:
#*Dobrze: <code>#define FREE(p) do { free(p); p = NULL; } while(0)</code>
# Unikaj używania argumentów makra więcej niż raz wewnątrz makra. Może to spowodować kłopoty, gdy argument makra ma efekty uboczne (np. zawiera operator inkrementacji).
#*'''Przykład:''' <code>#define kwadrat(x) ((x)*(x))</code> nie powinno być wywoływane z operatorem inkrementacji <code>kwadrat(a++)</code> ponieważ zostanie to rozwinięte jako <code>((a++) * (a++))</code>,
# Jeśli makro może być w przyszłości zastąpione przez funkcję, rozważ użycie w nazwie małych liter, jak w funkcji.
|