Coming Garbage values

Hi,
I have a written a simple code..In my code the value of 'a' is printing Garbage value..
const unsigned int a=AV_RN32A(src-stride);//stride is 1
The actual value is 16...

#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);
}
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);
}


Your code is such a tangled mess.
Last edited on
ofcource..ok..I will explain my logic..

I have writtten my logic like below

const unsigned int a=((unsigned int*)(src-stride));


The src is unsigned char src[4][4]={{16,15,14,13},{12,11,10,9},{8,7,6,5}{4,3,2,1}};

the stride is 1.

In the above case the value of 'a' is 15
But its printing garbage value..
can u tell me whats the reason
Topic archived. No new replies allowed.