[so] Extensii gcc sau standard C?

Lucian Cojocar cojocar at rosedu.org
Sat May 1 12:16:15 EEST 2010


On 05/01/2010 11:54 AM, 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ă?

Da, e standard C99, din secţiunea 6.7.5.2 Array declarators, vezi
exemplul 9.

> 
> 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?

Da, e standard C99, vezi secţiunea 6.7.8 Initialization, Syntax şi
exemplul 10.

> 
> 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

calloc alocă de pe heap.

Lucian


More information about the so mailing list