头文件引起的bug

it2026-03-15  5

理下关系,重现下问题。

 

1)通用结构体struct stCom定义在common.h中,生成common.a。

 

2)修改结构体定义。(修改结构体中某一个数据的长度)

 

3)client.cpp  引用了修改之后的头文件common.h,并且编译静态链接common.a. 

 

结果,client.cpp和common.a中对结构体struct stCom的定义是不一致的,出现了数据错乱的问题。

 

这个问题不常见,主要是因为版本控制做的不到位引起的。

 

用gdb很容易看出来 ,结构体的内存布局在不同上下文中的区别。

 

转载于:https://www.cnblogs.com/netbar/p/3332747.html

最新回复(0)