【发布时间】:2020-10-13 18:54:02
【问题描述】:
我在 c 中有结构
struct Book {
char title[50];
char author[50];
char subject[100];
int book_id;
};
struct Book * book;
我可以像book->book_id一样访问整数book_id
但是我怎样才能通过偏移量访问 book_id 呢?如何计算(在 c 代码中)结构中特定元素的偏移量并像 book+X 一样访问
【问题讨论】:
-
首先“我可以像 book->book_id 一样访问 book_id”。不,你不能,因为
book不是指针。至于“像书+X一样访问”......你不能。反正不是直接的。您可以获取成员的 byte 偏移量,但要获取指向该成员的指针,您需要指向结构的第一个 byte 的指针。而且您必须知道每个成员的确切类型。 -
更重要的是,您要解决的实际问题是什么? 为什么需要通过offsets来访问成员?现在你的问题是XY problem。请询问您尝试解决的实际问题,并添加有关此问题的注释作为可能的解决方案。然后,我们可以更好地帮助您,并可能通过为您提供更好的解决原始问题的方法。 或者如果只是好奇,那也没关系。但是请edit您的问题说明这一点。