void指针强转结构体指针问题
====================================================================================================================================
1.程序,test.c
#include <stdio.h>
#include <stdlib.h>
typedef unsigned long u32; //64位机器为8字节,32位机器为4字节
typedef struct my_struct{
u32 a;
u32 b;
u32 c;
}mystruct;
int main(){
void *test;
test = NULL;
test = malloc(1);
printf("test is %lx
",test);
#define GPIO ((mystruct *)(test))
GPIO->a = 10;
GPIO->b = 20;
GPIO->c = 30;
printf("(&(GPIO->a)) is %lx
",(&(GPIO->a)));
printf("(&(GPIO->b)) is %lx
",(&(GPIO->b)));
printf("(&(GPIO->c)) is %lx
",(&(GPIO->c)));
printf("GPIO->a is %d
",GPIO->a);
printf("GPIO->b is %d
",GPIO->b);
printf("GPIO->c is %d
",GPIO->c);
free(test);
test = NULL;
return 0;
}2.编译gcc -o test test.cpp,我的机器是64位ubuntu。
3.结果./test
test is 17f2010 (&(GPIO->a)) is 17f2010 (&(GPIO->b)) is 17f2018 (&(GPIO->c)) is 17f2020 GPIO->a is 10 GPIO->b is 20 GPIO->c is 30
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: Android Input之JoyStick
