W języku programowania C rozumiem, że zmienne mogą być zdefiniowane tylko na początku bloku kodu, a zmienna będzie miała zakres bloku, w którym została zadeklarowana. Z tą myślą zastanawiałem się, czy uważa się złą praktyką sztucznie utworzyć nowy zakres, jak w poniższym przykładzie:Czy (PRAWDA) dobry pomysł w C?
void foo()
{
... Do some stuff ...
if(TRUE)
{
char a;
int b;
... Do some more stuff ...
}
... Do even more stuff ...
}
Zakładając PRAWDA jest ustawiony na 1 w definicji makra, to kod ten należy uznać za „dobry kod”, czy też zrobić programiści doświadczeni warować na samą myśl o tym?
Dzięki za twój wkład!
EDYCJA: W odpowiedzi na niektóre z odpowiedzi, kod, nad którym pracuję, musi działać z dość starymi, starszymi systemami. Chociaż dobrze byłoby działać na założeniu C99, nie możemy zagwarantować, że będą go mieli.
afaik, {} ma własny zakres sine ansi C (to jest około 1990) – George
Typowym przykładem tego jest debugowanie, w którym można łatwo przełączać się pomiędzy (42) i (0) zamiast komentować. – ypnos
Twój tytuł nie opisuje w ogóle tego pytania. Wydaje się, że pytasz, czy dobrą praktyką jest definiowanie PRAWDA. – BobbyShaftoe