#include <stdio.h> /* printf */
#include <stdlib.h> /* strtol */
int main( int argc, char **argv )
{
if ( argc < 2 )
{
printf( "Usage: %s number \n", argv[ 0 ] );
return 1;
}
char buf[ 1234 ];
printf( "sizeof( buf ) ~>* %zu\n", sizeof( buf ) );
int runtime = strtol( argv[ 1 ], 0, 0 );
char vla[ runtime ];
/* ‹sizeof› je magická věc, která je schopna prozradit i velikost
* pole proměnné délky */
printf( "char vla[ %d ]\n", runtime );
printf( "sizeof( vla ) ~>* %zu\n", sizeof( vla ) );
const int i = 1234;
char whatami[ i ];
printf( "sizeof( whatami ) ~>* %zu\n", sizeof( whatami ) );
enum ahoj
{
/* ok, protože ‹sizeof buf› je konstantní hodnota za překladu */
one = sizeof buf,
/* error, protože ‹enum› neakceptuje nekonstantní hodnoty */
// two = sizeof vla,
/* je ‹whatami› VLA, nebo obyčejné pole? */
// thr = sizeof whatami,
};
return 0;
}