[vlc-devel] Re: Compiling with visual studio 2005
rem at videolan.org
Thu Dec 21 12:58:04 CET 2006
Le jeudi 21 décembre 2006 11:56, Mortisandraco a écrit :
> For example, in libvlc there are a couple of times you used something
> like: void foo(int i)
> char array[i];
> I need to look it up but I don't think that's possible in the c
It looks like a perfectly standard variable-length array.
From ISO/IEC 9899:TC2 § 18.104.22.168 Array declarators, constraints:
"1 (...) the [ and ] may delimit an expression (...). If they delimit an
expression, the expression shall have an integer type. If the
expression is a constant expression, it shall have a value greater than
4 (...) If the size is an integer constant expresssion and the element
type has a known constant size, the array type is not a variable-length
array type; otherwise the array type is a variable-length array type.
> Currently I'm at the download limit of my provider so I
> can't download cygwin to check with gcc (--pedantic IIRC).
I don't know if -pedantic will work. I know from experience that
switching from -std=gnu99 to -std=c99 removes all the non-ISO APIs,
which understandably does not work with VLC. It's a pity considering we
do not necessarily want to include non-standard GNU constructs. On the
other hand, I think we use some non-standard "__attribute__" when
compiling under GCC, and I don't know what happens if using -pedantic
or -std=c** either.
> I changed the code to char* array = malloc(i * sizeof(char));
By the way, note that sizeof(char) == 1 per definition.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: not available
More information about the vlc-devel