Commit Graph

4 Commits

Author SHA1 Message Date
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
0c834ca675 Added pic project for 101 2024-10-24 15:18:43 -07:00
17fadb5151 Added matrix calcs and time_tests 2024-10-07 18:16:21 -07:00
eb4ffb54cb Add c_projects 2024-04-18 12:33:14 -07:00