[so] Extensii gcc sau standard C?

Mihai Maruseac mihai.maruseac at gmail.com
Sat May 1 12:04:38 EEST 2010


2010/5/1 Vlad Dogaru <ddvlad at rosedu.org>:
> Mihai Maruseac wrote:
>> Am văzut azi într-un code snippet o declarație de forma
>>
>> int a[size1 + size2]
>>
>> unde size1 și size2 erau două variabile, neconstante, nu #define-uri, nu
>> nimic.
>>
>> Este vorba de o extensie a gcc sau este ceva din standardul C ce eu
>> n-am găsit la o citire pe diagonală?
>
> Variable Length Arrays[1] au fost adaugate in C99.
>
> [1] http://en.wikipedia.org/wiki/Variable-length_array
>
>>
>> Dacă tot suntem aici, inițializarea structurilor cu
>>
>>       struct flock fl = {
>>               .l_type = F_WRLCK,
>>               .l_start = 0,
>>               .l_whence = SEEK_SET,
>>               .l_len = 0,
>>               .l_pid = getpid()
>>       };
>>
>> (© Andrei Faur tema 0) este extensie gcc sau în standard/extensie C?
>
> Sintaxa de initializare a structurilor este extensie GCC[2].
>
> [2] http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_4.html#SEC81
>
>> PS: Pentru prima problemă am vrut să văd dacă mi se generează cod
>> identic cu calloc și am comparat codul în limbaj de asamblare.
>> Diferențele erau prea mari [0]:P
>
> [1] zice ca GCC aloca VLA-uri pe stiva, dar nu am verificat.
>
> Hope this helps,
> Vlad
>

Mersi :)


More information about the so mailing list