If I have a C file like below, what is the difference between i and j?
i
j
#include #include static i
i has internal linkage so you can't use the name i in other source files (strictly translation units) to refer to the same object.
j has external linkage so you can use j to refer to this object if you declare it extern in another translation unit.
extern