发现有同事这么写,就去问了下有什么影响,觉得比较靠谱得的答案是:
编译器是以.cpp为单位编译的, 每个.cpp生成一个.obj
然后把所有.obj Link成一个.exe
#include的作用相当于复制粘贴
宏保护的作用是防止在一个.cpp中粘贴多次.
如果没有宏保护, 在生成.obj时就会出错.
如果把普通函数写在.h中, 则多个.obj中会含有相同的binary代码, link时会有冲突
编译器是以.cpp为单位编译的, 每个.cpp生成一个.obj
然后把所有.obj Link成一个.exe
#include的作用相当于复制粘贴
宏保护的作用是防止在一个.cpp中粘贴多次.
如果没有宏保护, 在生成.obj时就会出错.
如果把普通函数写在.h中, 则多个.obj中会含有相同的binary代码, link时会有冲突