int _tmain(int argc, _TCHAR* argv[])
{
int arr_size = 10;
float var_array[arr_size];
return 0;
}
이런 형태의 배열은 visual c++ 2008 에서도 혀용되지 않는다.
gcc는 가능.
{
int arr_size = 10;
float var_array[arr_size];
return 0;
}
이런 형태의 배열은 visual c++ 2008 에서도 혀용되지 않는다.
gcc는 가능.
gcc -std=iso9899:1999 와 같은 옵션이 해당되며 디폴트로 컴파일 가능하다.
물론 C99 표준에 부합하는 문법이다.
C99 예.
extern int n;
int A[n]; // Error - file scope VLA.
extern int (*p2)[n]; // Error - file scope VM.
int B[100]; // OK - file scope but not VM.
void fvla(int m, int C[m][m]) // OK - VLA with prototype scope.
{
typedef int VLA[m][m] // OK - block scope typedef VLA.
struct tag {
int (*y)[n]; // Error - y not ordinary identifier.
int z[n]; // Error - z not ordinary identifier.
};
int D[m]; // OK - auto VLA.
static int E[m]; // Error - static block scope VLA.
extern int F[m]; // Error - F has linkage and is VLA.
int (*s)[m]; // OK - auto pointer to VLA.
extern int (*r)[m]; // Error - r had linkage and is
// a pointer to VLA.
static int (*q)[m] = &B; // OK - q is a static block
// pointer to VLA.
}