Trong ngôn ngữ C, cách lấy địa chỉ bắt đầu của cấu trúc từ địa chỉ thành viên của nó?cách lấy địa chỉ bắt đầu của cấu trúc từ địa chỉ thành viên
struct type1 {
//...
int member1;
//...
};
struct type1 obj1;
Và ptr1
là địa chỉ của thành viên member1
trong obj1
, làm thế nào để xác định
vĩ mô #define start_add(ptr1, type1, member1)
để có được obj1 của địa chỉ
bắt đầu?
Tôi nghĩ rằng bạn có thêm một '& 'trước' (ptr1) '. 'ptr1' là địa chỉ của thành viên. –
Khá đúng, cố định. –
Bạn cũng nên thêm một tập hợp dấu ngoặc xung quanh toàn bộ kết quả macro - hãy nhớ rằng '->' có ưu tiên cao hơn '(type)', vì vậy nếu bạn muốn áp dụng '->' cho kết quả bạn sẽ cần chúng. – caf