예를 들어 공유 라이브러리에 해당하는 다음 헤더 파일을 가정합니다. 공유 라이브러리가 하나의 컴파일러를 사용하여 구축 한 후 때문에 다른의 작동하지 않을 수 있습니다 다른 컴파일러를 사용하여 내장 된 C 코드에서 사용하는 경우컴파일러 간 구조체 정렬 및 이식성
// lib.h
typedef struct {
char c;
double d;
int i;
} A;
DLL_EXPORT void f(A* p);
: 내 보낸 함수는이 헤더에 정의 된 사용자 정의 구조에 대한 포인터를 취 메모리 정렬, Memory alignment in C-structs 제안합니다. 그렇다면 같은 구조의 다른 컴파일러에서 구조 정의를 이식 할 수있는 방법이 있습니까?
나는 분명히 다른 플랫폼에 대해서도 배우기는하지만 윈도우 플랫폼 (분명히 잘 정의 된 ABI가 없다)에 관심이있다.
아니요, 누군가가 보증하지 않는 한 아니요. –
중복되지 않습니다. 적어도 선택한 질문이 아닙니다. 이것은 독자적으로 설 수 있습니다. –
"struct alignment"라는 단어가 다른 질문과 관련이없는 경우에도 자동으로 그 질문의 중복이 있습니까? –