I want to understand the external linkage and internal linkage and their difference.
I also want to know the meaning of
const
variables internally link by default unless otherwise declared asextern
.
Answer
When you write an implementation file (.cpp
, .cxx
, etc) your compiler generates a translation unit. This is the object file from your implementation file plus all the headers you #include
d in it.
Internal linkage refers to everything only in scope of a translation unit.
External linkage refers to things that exist beyond a particular translation unit. In other words, accessible through the whole program, which is the combination of all translation units (or object files).
No comments:
Post a Comment