#include /* printf */ #include /* 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; }