本人菜鸡,没想到因为代码写的太乱了,导致出现头文件内容错误bug
起因
因为我在bsp代码中使用了,一个其他h文件中的枚举作为参数。一开始枚举定义在bsp,所以,所有都正常,但是,我想集中和降低耦合,然后就出现问题了,bsp.h中的函数和一些变量显示没定义。
原因
因为存在依赖,因为c和cpp很多语言都是顺序编译的,很少有那种就是先不报错,等待延后依赖的。所以,一旦发现没定义就会报错,停止编译了,这个其实也是很合理的,如果你是linux的话?编译了几小时,然后依赖真的没有,那完蛋了,真的浪费时间了,所以,就需要人为控制和人为降低耦合来实现
例子
这是一个非常经典的错误,就是后面头文件对前面的头文件存在非常明显的依赖。如果日后,遇到这种问题就说明你写的和我一样是一坨,哈哈哈。就是耦合度太高了,还是建议降低耦合,尽量模块化,独立接口啥的
结语
低耦合高内聚模块化,天天喊,天天叫。哎~~ 如果真的非常依赖bsp的话,可以考虑这样写哦。因为#ifndef #define #endif和 #pragma one的原因,那些头文件只能加载一次,但是如果内部又加载其他的头文件就可以导致,下面的没执行完毕,导致很多数据丢失,编译失败。
错误原因:因为调用头文件,成环了,所以,导致缺失。 头文件有先后顺序才能执行。
这些本质都是因为这些文件关联了其他文件,没实现线性树状的结构导致的高耦合错误。