考虑一个程序P,它由两个不同文件中包含的两个源模块M1和M2组成。如果M1包含对M2中定义的函数的引用,则该引用将在以下位置解析
(A)编辑时间
(B)编译时间
(C)链接时间
(D)加载时间答案: (C)
解释:
笔记:
静态链接在链接时完成,动态链接或共享库仅在运行时导入。
(A)编辑时:绝对不能在编辑时或代码编写时给定/确定函数引用。函数引用与函数名称不同。函数名称在编辑时使用,函数引用在链接器时(对于静态库)或在运行时(对于动态库)确定。
(B)编译时:对同一文件或模块中存在的函数进行编译时绑定。
(C)链接时间:链接时间绑定是在链接器阶段完成的,在此文件中,存在于单独文件或模块中的功能在可执行文件中被引用。
(D)加载时间:在加载时不进行函数引用。
因此,正确答案将是(C)。
此解决方案由Vineet Purswani提供。
这个问题的测验