刚刚面试完一家大厂,面试官看起来很年轻,在问我问题的时候问到了头文件包含的问题,描述是这样的。 有一个头文件c.h,c中包含一个help函数,两个cpp文件a.cpp b.cpp,它们都包含c.h,请问这样会报错吗? 我是会报重复定义的问题,用#ifndef 或者 #pargma once 来解决。 他说,你这样不能解决不了重复的问题,因为a、b在链接的时候都有c这个help函数,这会涉及到重名导致链接出错。 解决方案是把help函数的实现和定义分离,用c.cpp去实现help函数就没有问题了。 当时我觉得涉及到我的知识盲区了,也没有杠。 结果我下去实验了一...