gcc可以通过 cl无法通过 什么问题
#ifdef __ICL#define DECLARE_ALIGNED( var, n ) __declspec(align(n)) var
#else
#define DECLARE_ALIGNED( var, n ) var __attribute__((aligned(n)))
#endif
#define ALIGNED_16( var ) DECLARE_ALIGNED( var, 16 )
#define ALIGNED_8( var )DECLARE_ALIGNED( var, 8 )
#define ALIGNED_4( var )DECLARE_ALIGNED( var, 4 )
#include <stdint.h>
typedef uint16_t pixel;
struct x264_weight_t;
typedef struct x264_weight_t
{
/* aligning the first member is a gcc hack to force the struct to be
* 16 byte aligned, as well as force sizeof(struct) to be a multiple of 16
*/
ALIGNED_16(int16_t cachea);
int16_t cacheb;
int32_t i_denom;
int32_t i_scale;
int32_t i_offset;
}x264_weight;
=================
只要把宏ALIGNED_16注释掉,cl也是可以通过的。
什么问题啊?
我知道你是谁了,你就是竹笋大师。
“对齐”的概念知道不?你需要针对你所谓的“cl”(目测MSVC)将DECLARE_ALIGNED定义为对齐方式。MSVC的对齐的定义方式和ICL的一致。
页:
[1]