一.為什么要保證堆棧8字節(jié)對齊AAPCS規(guī)則要求堆棧保持8字節(jié)對齊。如果不對齊,調(diào)用一般的函數(shù)也是沒問題的。但是當(dāng)調(diào)用需要嚴(yán)格遵守AAPCS規(guī)則的函數(shù)時可能會出錯。例如調(diào)用sprintf輸出一個浮點數(shù)時,棧必須是8字節(jié)對齊
基于ARM架構(gòu)的處理器的C語言程序設(shè)計遵循ATPCS(ARM-THUMB procedure call standard)和AAPCS(ARM Application Procedure Call Standard)。ATPCS規(guī)定數(shù)據(jù)棧為FD(滿遞減Full Decrease)類型,并且對數(shù)據(jù)棧的操作是8字節(jié)對
在LV和VC的WIN32 DLL之間傳遞下面結(jié)構(gòu)體。 typedef struct npm_axis { int axis_select; int sv;//初始速度 int v;//驅(qū)動速度 //int acc;//直線加速度 //int dec;//直線減速度 int sacc;//s曲線加速