函数放在头文件中被多次包含的重定义问题以及原Makefile存在的问题
例如一个头文件headfile.h这样写#pragma oncebool Func (){return true;}在这个头文件被多个地方包含的时候就会出问题,链接时报错: (FuncB报重定义)“fatal error LNK1169: 找到一个或多个多重定义的符号”原因是,在headfile.h中定义了函数及其实现,如果被包含时,则会把函数实现放入包含的位置,被包含多次时,则会被放入多次,从而导致Func重定义。那怕是在头文件中使用了#pragma once或是#ifdef __xxx /#
原创
2021-03-12 10:36:03 ·
1467 阅读 ·
0 评论