关于字节对齐的几点疑问
首先百度百科这样解释:
"现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。"
这个解释,感觉不太明朗,就是解释了一个问题的同时,又引出了新的问题,我指的是:"但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问", 什么叫特定的类型变量? 举个例子?
另一个问题是出自别人的话:
"即使看起来本来就自然对齐的也要使其对齐,以免不同的编译器生成的代码不一样."
意思是,"int a"这样的变量是4字节自然对齐的, 如果某种指令限定一个变量必须按4字节对齐,那么也得加上类似"__declspec(align(4))" 这样的声明?