[so] [General] Coding Style și Funcții Statice

Laura Vasilescu laura.vasilescu at cs.pub.ro
Thu Mar 31 23:10:59 EEST 2016


2016-03-31 22:17 GMT+03:00 Razvan Deaconescu via so <so at cursuri.cs.pub.ro>:
> Dorinel Filip via so <so at cursuri.cs.pub.ro> writes:
>> Salutare,
>>
>> De multe ori, în C, pentru a evita declarațiile implicite, trebuie să
>> punem, semnăturile funcțiilor statice la începutul sursei modulului
>> (exact cum am face într-un fișier header, pentru funcțiile
>> non-statice).
>
> Nu înțeleg "evitarea declarațiilor implicite". Despre ce este vorba?

Declarațiile implicite presupun că orice funcție întoarce int. Așa că
următorul snippet de cod dă eroare la compilare (nu uitați de "-lm"):
#include <stdio.h>
#include <math.h>

int main(void)
{
        int r = my_sqrt();
        printf("%lf\n", r);

        return 0;
}

double my_sqrt()
{
        return sqrt(2);
}

Dacă modifici my_sqrt  să întoarcă int, nu mai primești eroare.
De asemenea, dacă lași funcția așa (să întoarcă double) și o declari
înainte de main, nu mai primești eroare.

(nu luați cu copy/paste snippet-ul că l-am scris de pe telefon și
probabil are și alte erori :) )

Laura


More information about the so mailing list