반응형
C/C++ 구조물 간격띄우기
구조의 인스턴스를 할당하지 않고 구조 내 필드의 오프셋을 알려줄 수 있는 코드를 찾고 있습니다.
IE: 지정됨
struct mstct {
int myfield;
int myfield2;
};
나는 쓸 수 있습니다:
mstct thing;
printf("offset %lu\n", (unsigned long)(&thing.myfield2 - &thing));
그리고 getoffset 4
생산을 위하여.그것 없이 어떻게 할 수 있습니까?mstct thing
선언/할당?
나는 그것을 알고 있습니다.&<struct>
항상 구조의 첫 번째 필드의 첫 번째 바이트를 가리키는 것은 아니므로 나중에 설명할 수 있습니다.
() 매크로의 표준 오프셋(instddef.h)은 어떻습니까?
편집: 어떤 이유로 () 매크로의 오프셋을 사용할 수 없는 사용자는 다음과 같은 방법을 사용하여 효과를 얻을 수 있습니다.
#define OFFSETOF(type, field) ((unsigned long) &(((type *) 0)->field))
네, 다음을 사용합니다.offsetof
(적어도 GNU CC와 함께) C와 C++ 코드 모두에서 사용할 수 있는 매크로:
offsetof(struct mstct, myfield2)
printf 파일: %d\n", &(mstct*0)->myfield2);
언급URL : https://stackoverflow.com/questions/142016/c-c-structure-offset
반응형
'programing' 카테고리의 다른 글
div 요소 내의 텍스트를 대체하려면 어떻게 해야 합니까? (0) | 2023.08.16 |
---|---|
TypeError가 표시되는 이유: 시퀀스를 'float' 유형이 아닌 형식으로 곱할 수 없습니까? (0) | 2023.08.16 |
Azure 리소스 그룹이 있는지 확인 - Azure Powershell (0) | 2023.08.16 |
Mysql과 MariaDB 커넥터 간의 호환성을 확인하는 방법 (0) | 2023.08.16 |
url_for를 사용하여 Flask 정적 파일에 링크 (0) | 2023.08.16 |