最近在调试一个系统,有一个BUG始终确定不了来源,无奈在能够打印的地方全部都加上了打印函数,输出的结果大吃一惊,同一个结构体在不同的函数中竟然有不同的大小!!!内存对齐吗?强制对齐后仍然出现这个问题,这尼玛太挑战我的理解力了。
最后才发现一个同学竟然自己定义了size_t,虽然两个函数文件中都包含了同一个结构体的定义头文件,但两个文件之后又包含了其它的文件,对结构体中的类型size_t进行了重定义,这样同一个结构体最终编译的结果就是不同的大小了。
最近在调试一个系统,有一个BUG始终确定不了来源,无奈在能够打印的地方全部都加上了打印函数,输出的结果大吃一惊,同一个结构体在不同的函数中竟然有不同的大小!!!内存对齐吗?强制对齐后仍然出现这个问题,这尼玛太挑战我的理解力了。
最后才发现一个同学竟然自己定义了size_t,虽然两个函数文件中都包含了同一个结构体的定义头文件,但两个文件之后又包含了其它的文件,对结构体中的类型size_t进行了重定义,这样同一个结构体最终编译的结果就是不同的大小了。