比如,C语言中的dir1和dir2分别有同名的a.c和a.h文件(会包含同名的函数),那么在其他目录下的b.c中包含a.h文件,并且调用a.c的同名函数,那么编译器是怎么识别是调用dir1还是dir2目录下a.c的同名函数?(排除再b.c中包含绝对路径与相对路径头文件)