diff --git a/lcthw/.gitignore b/lcthw/.gitignore index a32a055..362c151 100644 --- a/lcthw/.gitignore +++ b/lcthw/.gitignore @@ -4,3 +4,4 @@ ex7 ex8 ex9 ex10 +ex11 diff --git a/lcthw/Makefile b/lcthw/Makefile index 989a900..79c01a4 100644 --- a/lcthw/Makefile +++ b/lcthw/Makefile @@ -1,7 +1,7 @@ CFLAGS ?= -Wall -g GDBRUN = gdb --batch --ex run --ex bt --ex q --args -BUILD_TARGETS = ex1 ex3 ex7 ex8 ex9 ex10 -TEST_TARGETS = ex1 ex3 ex7 ex8 ex9 +BUILD_TARGETS = ex1 ex3 ex7 ex8 ex9 ex10 ex11 +TEST_TARGETS = ex1 ex3 ex7 ex8 ex9 ex11 .PHONY: all all: build test @@ -15,10 +15,16 @@ build: $(BUILD_TARGETS) .PHONY: gtest gtest: - @$(foreach bt,$(TEST_TARGETS),$(GDBRUN) ./$(bt) &&) \ - echo ' gYAY' + @$(foreach bt, \ + $(TEST_TARGETS), \ + printf '\n==> $(bt)\n' && $(GDBRUN) ./$(bt) && \ + ) \ + printf '\ngYAY\n' .PHONY: test test: - @$(foreach bt,$(TEST_TARGETS),./$(bt) &&) \ - echo ' YAY' + @$(foreach bt, \ + $(TEST_TARGETS), \ + printf '\n==> %s\n' "$(bt)" && ./$(bt) && \ + ) \ + printf '\nYAY\n' diff --git a/lcthw/ex11.c b/lcthw/ex11.c new file mode 100644 index 0000000..4fb2f95 --- /dev/null +++ b/lcthw/ex11.c @@ -0,0 +1,48 @@ +#include + +int main(int argc, char *argv[]) +{ + int numbers[4] = { 0 }; + char name[4] = { 'a' }; + + // first, print them out raw + printf("numbers: %d %d %d %d\n", + numbers[0], numbers[1], numbers[2], numbers[3]); + + printf("name each: %c %c %c %c\n", + name[0], name[1], name[2], name[3]); + + printf("name: %s\n", name); + + // setup the numbers + numbers[0] = 1; + numbers[1] = 2; + numbers[2] = 3; + numbers[3] = 4; + + // setup the name + name[0] = 'Z'; + name[1] = 'e'; + name[2] = 'd'; + name[3] = '\0'; + + // then print them out initialized + printf("numbers: %d %d %d %d\n", + numbers[0], numbers[1], numbers[2], numbers[3]); + + printf("name each: %c %c %c %c\n", + name[0], name[1], name[2], name[3]); + + // print the name like a string + printf("name: %s\n", name); + + // another way to use name + char *another = "Zed"; + + printf("another: %s\n", another); + + printf("another each: %c %c %c %c\n", + another[0], another[1], another[2], another[3]); + + return 0; +}