Script started on Mon 27 Oct 2025 05:40:14 PM EDT [mweeks@gsuad.gsu.edu@snowball ~]$ cat count_to_5.c /* simple program to print 1 2 3..5 gcc count_to_5.c will give an error gcc count_to_5.c -std=c99 will not */ #include int main (int argc, char *argv[]) { for (int i=1; i<=5; i++) printf("%d ", i); printf("\n"); return 0; } [mweeks@gsuad.gsu.edu@snowball ~]$ gcc count_to_5.c count_to_5.c: In function ‘main’: count_to_5.c:12:4: error: ‘for’ loop initial declarations are only allowed in C99 mode for (int i=1; i<=5; i++) ^ count_to_5.c:12:4: note: use option -std=c99 or -std=gnu99 to compile your code [mweeks@gsuad.gsu.edu@snowball ~]$ gcc count_to_5.c -std=c99 [mweeks@gsuad.gsu.edu@snowball ~]$ ./a,out bash: ./a,out: No such file or directory [mweeks@gsuad.gsu.edu@snowball ~]$ ./a.out 1 2 3 4 5 [mweeks@gsuad.gsu.edu@snowball ~]$ cat float_in_hex.c // How does a float look internally? // -MCW #include union { float value; unsigned char bytes[4]; } my_union; int main() { my_union.value = 10.7; printf("float value is %f \n", my_union.value); printf("float value in hex is "); for (int i=0; i<4; i++) printf("%2x ", my_union.bytes[i]); printf("\n"); my_union.value = 10.8; printf("float value is %f \n", my_union.value); printf("float value in hex is "); for (int i=0; i<4; i++) printf("%2x ", my_union.bytes[i]); printf("\n"); return 0; } [mweeks@gsuad.gsu.edu@snowball ~]$ gcc float_in_hex.c float_in_hex.c: In function ‘main’: float_in_hex.c:20:3: error: ‘for’ loop initial declarations are only allowed in C99 mode for (int i=0; i<4; i++) ^ float_in_hex.c:20:3: note: use option -std=c99 or -std=gnu99 to compile your code float_in_hex.c:27:12: error: redefinition of ‘i’ for (int i=0; i<4; i++) ^ float_in_hex.c:20:12: note: previous definition of ‘i’ was here for (int i=0; i<4; i++) ^ float_in_hex.c:27:3: error: ‘for’ loop initial declarations are only allowed in C99 mode for (int i=0; i<4; i++) ^ [mweeks@gsuad.gsu.edu@snowball ~]$ gcc float_in_hex.c -std=c99 [mweeks@gsuad.gsu.edu@snowball ~]$ ./a.out float value is 10.700000 float value in hex is 33 33 2b 41 float value is 10.800000 float value in hex is cd cc 2c 41 [mweeks@gsuad.gsu.edu@snowball ~]$ echo "-2.34x10^2" -2.34x10^2 [mweeks@gsuad.gsu.edu@snowball ~]$ echo sign, significand, exponent sign, significand, exponent [mweeks@gsuad.gsu.edu@snowball ~]$ gccc -std=c99 float_in_hex.c [mweeks@gsuad.gsu.edu@snowball ~]$ cp float_in_hex.c int_in_hex.c [mweeks@gsuad.gsu.edu@snowball ~]$ vi int_in_hex.c [mweeks@gsuad.gsu.edu@snowball ~]$ [mweeks@gsuad.gsu.edu@snowball ~]$ [mweeks@gsuad.gsu.edu@snowball ~]$ [mweeks@gsuad.gsu.edu@snowball ~]$ gcc -std=c99 int_in_hex.c [mweeks@gsuad.gsu.edu@snowball ~]$ ./a.out int value is 0.000000 int value in hex is a 0 0 0 int value is 0.000000 int value in hex is b 0 0 0 [mweeks@gsuad.gsu.edu@snowball ~]$ vi int_in_hex.c [mweeks@gsuad.gsu.edu@snowball ~]$ gcc -std=c99 int_in_hex.c [mweeks@gsuad.gsu.edu@snowball ~]$ ./a.out int value is 10 int value in hex is a 0 0 0 int value is 11 int value in hex is b 0 0 0 [mweeks@gsuad.gsu.edu@snowball ~]$ cat int_in_hex.c // How does a int look internally? // -MCW #include union { int value; unsigned char bytes[4]; } my_union; int main() { my_union.value = 10; printf("int value is %d \n", my_union.value); printf("int value in hex is "); for (int i=0; i<4; i++) printf("%2x ", my_union.bytes[i]); printf("\n"); my_union.value = 11; printf("int value is %d \n", my_union.value); printf("int value in hex is "); for (int i=0; i<4; i++) printf("%2x ", my_union.bytes[i]); printf("\n"); return 0; } [mweeks@gsuad.gsu.edu@snowball ~]$ [mweeks@gsuad.gsu.edu@snowball ~]$ [mweeks@gsuad.gsu.edu@snowball ~]$ grep catalog *.c C_ch16_10.c:struct catalog_item { C_ch16_9.c: struct catalog_item { [mweeks@gsuad.gsu.edu@snowball ~]$ cat C_ch16_9.c struct catalog_item { int stock_number; float price; int item_type; char title[TITLE_LEN+1]; char author[AUTHOR_LEN+1]; int num_pages; char design[DESIGN_LEN+1]; int colors; int sizes; } [mweeks@gsuad.gsu.edu@snowball ~]$ cat C_ch16_10.c struct catalog_item { int stock_number; float price; int item_type; union { struct { char title[TITLE_LEN+1]; char author[AUTHOR_LEN+1]; int num_pages; } book; struct { char design[DESIGN_LEN+1]; } mug; struct { char design[DESIGN_LEN+1]; int colors; int sizes; } shirt; } item; }; [mweeks@gsuad.gsu.edu@snowball ~]$ cat C_ch16_11.c /* See Kim King's book, page 403. This is an expanded example with code added by Michael Weeks. */ #include enum {CLUBS, DIAMONDS, HEARTS, SPADES} s; void print_suit(int s1) { switch (s1) { case CLUBS: printf("Clubs"); break; case DIAMONDS: printf("Diamonds"); break; case HEARTS: printf("Hearts"); break; case SPADES: printf("Spades"); break; default: printf("Unknown"); } } int main() { int i; i = DIAMONDS; /* i is now 1 */ printf("i = %d, which is ", i); print_suit(i); printf("\n"); s = 0; /* s is now 0 (CLUBS) */ printf("s = %d, which is ", s); print_suit(s); printf("\n"); s++; /* s is now 1 (DIAMONDS) */ printf("s = %d, which is ", s); print_suit(s); printf("\n"); i = s + 2; /* i is now 3 */ printf("i = %d, which is ", i); print_suit(i); printf("\n"); return 0; } [mweeks@gsuad.gsu.edu@snowball ~]$ cat C_ch16_11_original.c #include enum {CLUBS, DIAMONDS, HEARTS, SPADES} s; int main() { int i; i = DIAMONDS; /* i is now 1 */ s = 0; /* s is now 0 (CLUBS) */ s++; /* s is now 1 (DIAMONDS) */ i = s + 2; /* i is now 3 */ } [mweeks@gsuad.gsu.edu@snowball ~]$ gcc C_ch16_11_original.c [mweeks@gsuad.gsu.edu@snowball ~]$ ./a.out [mweeks@gsuad.gsu.edu@snowball ~]$ [mweeks@gsuad.gsu.edu@snowball ~]$ gcc C_ch16_11.c [mweeks@gsuad.gsu.edu@snowball ~]$ ./a.out i = 1, which is Diamonds s = 0, which is Clubs s = 1, which is Diamonds i = 3, which is Spades [mweeks@gsuad.gsu.edu@snowball ~]$ cd .. [mweeks@gsuad.gsu.edu@snowball home]$ ls -la total 4816 drwxr-xr-x. 583 root root 20480 Oct 27 13:52 . dr-xr-xr-x. 18 root root 259 Sep 13 2024 .. [ Deleting similar lines ] drwxr-xr-x. 6 mweeks@gsuad.gsu.edu mweeks@gsuad.gsu.edu 4096 Oct 27 18:25 mweeks [ Deleting similar lines ] drwx------. 8 332752372 332752372 4096 Mar 25 2023 zwatkins1 [mweeks@gsuad.gsu.edu@snowball .backup_05-2023]$ [mweeks@gsuad.gsu.edu@snowball .backup_05-2023]$ exit exit Script done on Mon 27 Oct 2025 06:44:35 PM EDT