Re[2]: [pso] Probleme tema1 pe windows

Radu Rendec pso@cursuri.cs.pub.ro
Thu, 17 Mar 2005 13:58:10 +0200


On Thu, 2005-03-17 at 02:41 -0800, Andrei Costin wrote:
> Ca idee generala, cred ca e practica buna sa scrii ANSI C, si dupa cum a spus Tavi, ANSI
> C nu
> permite acest lucru. (PS: de interes oare cate variabile din astea temporare iti
> trebuie?! cred ca
> se poate rezolva cu "int i,j,k" la inceputul functiei ce contine pe while() - parerea
> mea)

Salut,

Urmatorul programel este ANSI C valid (sau cel putin asa spune gcc3, cu
parametrii "-Wall -pedantic -ansi":

#include <stdio.h>

int main(void) {
    do {
        int i = 0;

        printf("Hello, %d world!\n", i);
    } while(0);
    return 0;
}

Ca regula, toate declaratiile de variabile trebuie puse inaintea primei
instructiuni, dar asta se aplica *la nivel de bloc*. Cu alte cuvinte
poti sa declari variabile in bloc atata timp cat o faci la inceputul
blocului.

Mie mi se pare o practica buna sa declari in bloc variabile care nu au
relevanta decat pentru blocul respectiv. Codul este mai usor de citit
pentru ca nu trebuie sa te intorci la inceputul functiei ca sa vezi ce
variabile sunt alea si nu risti sa suprascrii valorile din niste
variabile gen i, j, k uitand ca mai sunt folosite pe urma.

Ca idee generala, ascultati-l pe Tavi ;)

Bafta,

Radu