warning: ISO C89 forbids mixed declarations and co

Sekcia: Programovanie 09.01.2006 | 18:20
Avatar SuSEr SuSE, Kubuntu  Používateľ
Zdravim, snazim se napsat program (jen proto ze musim) v cistem c (-ansi -pedantic). Prekladac me castuje dvema druhy warningu: 1) warning: ISO C89 forbids mixed declarations and code myslel jsem si ze vadi toto int i=0; a opravil jsem na int i; i=0; ne vsude to ovsem pomuze 2) ISO C90 forbids variable-size array `stringcisel' v programu potrebuji udelat neco takoveho while(zaloha_parametru>=1) { zaloha_parametru/=10; pocet_cifer++; } char stringcisel[pocet_cifer]; Nevite nekdo jak se zbavit prvniho warningu nebo cim nahradit uvedenou konstrukci, abych se zbavil druheho warningu? Predem diky za vsechny reakce SuSEr
    • Re: warning: ISO C89 forbids mixed declarations an 09.01.2006 | 18:12
      Avatar thefox Slackware  Používateľ

      Prvý warning je spôsobený tým, že deklaruješ premenné po začatí kódu vo funkcii (ako v C++). V čistom C musíš všetky premenné vo funkcii deklarovať pred akýmikoľvek príkazmi.

      Druhý problém budeš asi musieť riešiť cez pointery (niekde na začiatku budeš mať char *stringcisel, ktorý si podľa počtu prvkov vhodne malloc()neš, aby sa ti alokovalo pole potrebnej veľkosti.

      • Re: Re: warning: ISO C89 forbids mixed declaration 09.01.2006 | 18:20
        Avatar SuSEr SuSE, Kubuntu  Používateľ
        Diky, moc si mi pomohl :-) To je tak kdyz nekdo zacne rovnou C++ :-(