void function(int a, int b, int c) { char buffer2[10];我们必须记住,内存只能以单词大小的倍数进行寻址在我们的例子中,一个单词是4个字节,或32位。因此,我们的5字节缓冲区将占用8字节(2字)的内存,而我们的10字节缓冲区将占用12字节(3字)的内存。这就是为什么SP被减去20。
我有以下使用Intel本质的功能:
int c_lattice_worker( int lm, double* inArr, double* outArr, int arrLen,如果它是0,那么一切都能正常工作,但是如果lm是1,那么_mm_store_sd会导致程序分段错误(或者,换句话说,注释掉这两行使分段错误消失)。对于lm == 1,xnc索引没有对齐到16字节,但是根据英特尔的文档,_mm_store_sd不需要16字节对齐,只有_mm_store_pd不需要16字节