Compiler Related Questions

Q: Dynamic Linking vs Static Linking (Yahoo! PhoneScreen)
A:
1.    Dynamic linking: resolve references to lib routines, linker adds start-up code to load required libs at run-time, each lib call goes through a jump table. A jump table is patched to point at the lib routine, only overhead here is indirect reference.
2.    Static Linking:  linted into program during linking phase of compilation
3.    Dynamic Linking: verifies symbols linkage, dynamic loader checks which shared libs were linked with the program, loads to memory and attach to the program memory.
Example:
ar –s  is (ranlib)
ar –rc *.a *.o
g++ -shared –o lib*.so *.o
g++ -fPIC –c *(.c
ld –lc –o lib*.so *.o
Q:  What is Relocation?  (Yahoo! Phone Screen)
A:  allowing executable and shared obj fiels to hold right info for a process’ program image. It is the process of connecting symbolic ref with symbolic defs. ELF header, program header and section header.
Q:  C++ vfpointer and vftable?
A:  virtual function table and virtual function table. Whenever there is virtual function in class definitions, these 2 things are needed for dynamic-binding(polymorphism)

你可能感兴趣的:(C++,c,Yahoo,C#,UP)