1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
#include<stdio.h>
#include<stdlib.h>
#define av_alias
#define BIT_DEPTH 8
#define FUNCC(a) FUNC2(a,BIT_DEPTH, _c)
unsigned char _src[4][4]={{16,15,14,13},
{12,11,10,9},
{8,7,6,5},
{4,3,2,1}};
typedef union{
unsigned int u32;
unsigned short u16[2];
unsigned char u8[4];
float f32;
}av_alias av_alias32;
#define AV_RN4PA AV_RN32A
#define AV_RN32A(p) AV_RNA(32, p)
#define AV_RNA(s, p) (((const av_alias##s*)(p))->u##s)
#define AV_WN4PA AV_WN32A
#define AV_WN32A(p, v) AV_WNA(32, p, v)
#define AV_WNA(s, p, v) (((av_alias##s*)(p))->u##s = (v))
int main()
{
int _stride=1;
unsigned char *src = (unsigned char*)_src;
int stride = _stride>>(sizeof(unsigned char)-1);
printf("%d\n",stride);
const unsigned int a=AV_RN32A(src-stride);
//const unsigned int a=((unsigned int*)(src-stride));
printf("%d\n",a);
AV_WN4PA(src+0*stride, a);
printf("%d\n", ((unsigned int*)(src+0*stride)));
AV_WN4PA(src+1*stride, a);
AV_WN4PA(src+2*stride, a);
AV_WN4PA(src+3*stride, a);
}
|