Paketlenmiş alanlarla kod derlemek için g ++ kullanıyorum. Ancak, dolu bir alana bir başvuru göndermeye çalışırken bir hata alıyorum.Neden dolu bir alana bir başvuru döndüremiyorum?
Örnek:
struct __attribute__((packed)) Foo {
int* ptr;
uint16_t foo;
int*& getPtr(){
return ptr;
}
};
hata verir:
test.cpp:22:14: error: cannot bind packed field ‘((Foo*)this)->Foo::ptr’ to ‘int*&’
return ptr;
Neden paketlenmiş alan başvuru döndüremez?
Paketlenmişse, alan düzgün şekilde hizalanmamış olabilir. –
@ T.C .: gcc "Vida hizalama, x86 üzerindeyim" demenin bir yolu var mı? – gexicide
@gexicide 'return (int * &)ptr;' –