????????????????????γ??????????????????????д?Щ???????C++?????????????????????????????????????????????????????????????????????????????????????
?????????????????
????1?????????????????????б???????????е????????????????????????????????????????????????????????У???????????????е?????顣???????????????????CPP?????OBJ?????
????2?????????????C++?????????CPP??????????????????????????????????????????????
????3?????????????????????????????????????????????????????е???????????????Щ???????????δ??????????????????????????????????????????????????????
????????C++???????????????Translation Unit????????.cpp??????????include??????.h?????.h??????????????????????????.cpp??????????????????.cpp???????.obj????????????PE??Portable Executable????Windows????????????????????????????????????????????????????У?????????????????????main??????????????????????????????.cpp??????????????????????????????????????????.exe??.dll?????
??????????????????????±???????????????
?????????????????????????????????????????????????????A.cpp???????????壺
????int n = 1;
????void FunA()
????{
????++n;
????}
?????????????????????A.obj??????????????????Σ????????????????????????????n??FunA??????????????????????????????????????
?????????    ????    ????
????0x0000    n       4
????0x0004    FunA    ??
???????????????????????????????????????????????????δ????????????????????????????????????????0x0000?????
????FunA????????????????£?
????0x0004 inc DWORD PTR[0x0000]
????0x00?? ret
???????++n??????????inc DWORD PTR[0x0000]????????????0x0000λ??????DWORD??4??????1??
?????????????B.cpp????????????£?
????extern int n;
????void FunB()
????{
????++n;
????}
???????????B.obj?????????????
?????????    ????    ????
????0x0000    FunB    ??
??????????????n??????????n???????extern?????extern???????????????n???????????????????????????????????????????????????????????????????????n???????????????????FunB??а?????n?????????????FunB???????????
????0x0000 inc DWORD PTR[????]
????0x00?? ret