2010/10/15 <arnaud.champion@xxxxxxxxxx>: > Hi, > > I'm currently working on libvirt csharp bindings, and I have some trouble > with virConnectOpenAuth marshaling. > I need to know what is the alignment of data fields in structure when > compiling with mingwin. > Anyone know that ? > > cheers, > > Arnaud Champion > Why do you need to know the alignment? Do you need to build or access members of the virConnectCredential or virConnectAuth structs by offset in memory? The Wikipedia article about data structure alignment might be helpful when you really need to care about alignment. If you actually need the offset of the members in those structs you can just use the offsetof macro and let the compiler tell you: #include <stdio.h> #include <stddef.h> #include <libvirt/libvirt.h> void main(void) { printf("virConnectCredential\n"); printf(" type %2u\n", offsetof(virConnectCredential, type)); printf(" prompt %2u\n", offsetof(virConnectCredential, prompt)); printf(" challenge %2u\n", offsetof(virConnectCredential, challenge)); printf(" defresult %2u\n", offsetof(virConnectCredential, defresult)); printf(" result %2u\n", offsetof(virConnectCredential, result)); printf(" resultlen %2u\n", offsetof(virConnectCredential, resultlen)); printf("\n"); printf("virConnectAuth\n"); printf(" credtype %2u\n", offsetof(virConnectAuth, credtype)); printf(" ncredtype %2u\n", offsetof(virConnectAuth, ncredtype)); printf(" cb %2u\n", offsetof(virConnectAuth, cb)); printf(" cbdata %2u\n", offsetof(virConnectAuth, cbdata)); } Output on x86: virConnectCredential type 0 prompt 4 challenge 8 defresult 12 result 16 resultlen 20 virConnectAuth credtype 0 ncredtype 4 cb 8 cbdata 12 Output on x86_64: virConnectCredential type 0 prompt 8 challenge 16 defresult 24 result 32 resultlen 40 virConnectAuth credtype 0 ncredtype 8 cb 16 cbdata 24 [1] http://en.wikipedia.org/wiki/Data_structure_alignment#Typical_alignment_of_C_structs_on_x86 Matthias -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list