技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 58|回复: 1
收起左侧

gcc可以通过 cl无法通过 什么问题

[复制链接]

11

主题

48

帖子

193

积分

用户组: 小·技术宅

UID
5832
精华
0
威望
2 点
宅币
141 个
贡献
0 次
宅之契约
0 份
在线时间
31 小时
注册时间
2020-4-15
发表于 2020-6-16 18:31:38 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有帐号?立即注册→加入我们

x
#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[8]);
    int16_t cacheb[8];
    int32_t i_denom;
    int32_t i_scale;
    int32_t i_offset;
}x264_weight;

=================

只要把宏ALIGNED_16注释掉,cl也是可以通过的。
什么问题啊?
回复

使用道具 举报

1059

主题

2442

帖子

6万

积分

用户组: 管理员

一只技术宅

UID
1
精华
221
威望
348 点
宅币
19500 个
贡献
40278 次
宅之契约
0 份
在线时间
1839 小时
注册时间
2014-1-26
发表于 2020-6-18 22:19:51 | 显示全部楼层
我知道你是谁了,你就是竹笋大师。

“对齐”的概念知道不?你需要针对你所谓的“cl”(目测MSVC)将DECLARE_ALIGNED定义为对齐方式。MSVC的对齐的定义方式和ICL的一致。

本版积分规则

QQ|申请友链||Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图  

GMT+8, 2020-7-11 18:46 , Processed in 0.093280 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表