__m128i类型的解析
来源:互联网 发布:朵朵淘宝小号批发 编辑:程序博客网 时间:2024/04/28 21:37
对于SSE2指令集来说用到频率最高的的参数或返回类型,在这篇文章里看一下它定义的原型,并对他进行分析:
__m128i类型定义在emmintrin.h中,先来看一下它定义的原型:
typedef union __declspec(intrin_type) _CRT_ALIGN(16)__m128i {
__int8 m128i_i8[16];
__int16 m128i_i16[8];
__int32 m128i_i32[4];
__int64 m128i_i64[2];
unsigned __int8 m128i_u8[16];
unsigned __int16 m128i_u16[8];
unsigned __int32 m128i_u32[4];
unsigned __int64 m128i_u64[2];
}__m128i;
其中_CRT_ALIGN的定义如下:
#if !defined(_CRT_ALIGN)
#if defined(__midl)
#define _CRT_ALIGN(x)
#else
#define _CRT_ALIGN(x)__declspec(align(x))
#endif
#endif
另外:__int8 数据类型与类型 char是同义词的, __int16 与类型short是同义词的,__int32 与类型 int是同义词的,__int64 与类型long long是同义词的。
首先:__m128i为一个共用体(或又称,“联合”,union) 类型,union的特点为:共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。在union中,所有的共用体成员共用一个空间,并且同一时间只能储存其中一个成员变量的值。当一个共用体被声明时, 编译程序自动地产生一个变量, 其长度为联合中最大的变量长度的整数倍。所以__m128i的大小为128字节;
其次:__declspec(align(16))是设定内存对齐方式,来保证__m128i的大小为128字节;
- __m128i类型的解析
- SSE2指令 __m128i类型的解析
- __m128i
- 解析String类型的XML
- 数据库char类型的解析
- final类型数据的解析
- Gson指定类型的解析
- 解析String类型的数据的方法
- 解析Elasticsearch的SearchRequestBuilder的query类型
- C#的值类型和引用类型解析
- Ibatis的类型处理器TypeHandler解析
- 关于C++ 中POD类型的解析
- java 解析String类型的xml
- Dom4j解析String类型的xml数据
- 关于C++ 中POD类型的解析
- C++ 的"const char* const*"类型解析
- XML解析之Node的类型
- java解析string类型的xml
- VSTS强制删除签出锁定项
- 用JSP实现基于Web的RSS阅读器 .
- 几种常用的哈希算法
- Android技术内幕系统卷--读书笔记(一)
- hql 分页查询
- __m128i类型的解析
- 正则表达式规则(六)
- ubuntu12.04没有/var/log/messages解决
- C++教程
- Android PowerManager 详解
- map,max_element仿函数的写法
- Codeforces Round #185 (Div. 1) && (Div. 2)
- Android Animation学习笔记
- zoj1008 gnome tetravex 很久之前的dfs