uint32_t in offset test
This commit is contained in:
parent
64999eaefc
commit
e3e6d0bb7b
@ -8,18 +8,20 @@ typedef struct {
|
|||||||
uint8_t id;
|
uint8_t id;
|
||||||
char a[16];
|
char a[16];
|
||||||
uint8_t length;
|
uint8_t length;
|
||||||
|
uint32_t x;
|
||||||
} t_testObj;
|
} t_testObj;
|
||||||
|
|
||||||
t_testObj testObj = { .id = 0, .a = "test123", .length = 25 };
|
t_testObj testObj = { .id = 0, .a = "test123", .length = 25, .x = 123456 };
|
||||||
|
|
||||||
void printTestObj(t_testObj *testObj) {
|
void printTestObj(t_testObj *testObj) {
|
||||||
printf("testObj: id=%d, a=%s, length=%d\n", testObj->id, testObj->a, testObj->length);
|
printf("testObj: id=%d, a=%s, length=%d, x=%d\n", testObj->id, testObj->a, testObj->length, testObj->x);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
printf("id: %ld\n", offsetof(t_testObj, id));
|
printf("id: %ld\n", offsetof(t_testObj, id));
|
||||||
printf("a: %ld\n", offsetof(t_testObj, a));
|
printf("a: %ld\n", offsetof(t_testObj, a));
|
||||||
printf("length: %ld\n", offsetof(t_testObj, length));
|
printf("length: %ld\n", offsetof(t_testObj, length));
|
||||||
|
printf("x: %ld\n", offsetof(t_testObj, x));
|
||||||
|
|
||||||
printTestObj(&testObj);
|
printTestObj(&testObj);
|
||||||
|
|
||||||
@ -40,6 +42,12 @@ int main() {
|
|||||||
|
|
||||||
strcpy((char*)a3, "Wolfgang");
|
strcpy((char*)a3, "Wolfgang");
|
||||||
printTestObj(&testObj);
|
printTestObj(&testObj);
|
||||||
|
|
||||||
|
uint32_t *a4 = (uint32_t*) (((uint8_t*)&testObj) + offsetof(t_testObj, x));
|
||||||
|
printf("a4: %p\n", a4);
|
||||||
|
|
||||||
|
*a4 = 1234567890;
|
||||||
|
printTestObj(&testObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user