code_snippets/c_projects
xavi 69861846a2 Added the linker error playground
Here is a project where I was just trying to figure out the nuances of
different Translation Units and the scope of variables and function.

TLDR: run gcc d.c b.c c.c and see that the linker errors

There is storage duration and linkage that can be specified for vars and
funtions.

There are four different types of Storage Duration
Automatic - which is get initialized when the block starts and dies when
the block ends
Static - which is the entire duration of the program
Thread - which i didn't get into really
Allocated - which is the typical heap allocation thingys

There are three types of linkage. Basically where can you reach a
varibale from
No Linkage - can only be refered to in the block
Internal Linkage - can only be refered to in the same TLU
External Linkage - can be reachable by any TLU in the program

This shows how defining a variable in 1 h file (a.h), which will have
external linkage because it is a file scope variables not declared
static will default to, and then #include-ing the h file in multiple
other files will lead to redefiniation exceptions thrown by the linker.

If confused see more here:
https://en.cppreference.com/w/c/language/storage_class_specifiers.html
2025-12-19 13:06:31 -08:00
..
1darraysinc Add c_projects 2024-04-18 12:33:14 -07:00
array_reverse Add c_projects 2024-04-18 12:33:14 -07:00
arrays_and_strings Add c_projects 2024-04-18 12:33:14 -07:00
dynamic_arrays_in_c Add c_projects 2024-04-18 12:33:14 -07:00
linker_error_pg Added the linker error playground 2025-12-19 13:06:31 -08:00
matrix_calcs Added matrix calcs and time_tests 2024-10-07 18:16:21 -07:00
permutations_of_strings Add c_projects 2024-04-18 12:33:14 -07:00
pic_blink/example_v2.X Added pic project for 101 2024-10-24 15:18:43 -07:00
printing_tokens Add c_projects 2024-04-18 12:33:14 -07:00
printpattern Add c_projects 2024-04-18 12:33:14 -07:00
test Add c_projects 2024-04-18 12:33:14 -07:00
test_char_pointers Added matrix calcs and time_tests 2024-10-07 18:16:21 -07:00