데이터 멤버 (offsetof(mystruct, myfield)
)의 오프셋이 숫자 &mystruct::myfield
으로 검색된 멤버 포인터의 원시 값과 같거나 구현에 종속되어 있다고 가정하는 것이 안전합니까?은 오프셋 된 데이터 멤버에 대한 포인터입니까?
1
A
답변
3
아니오; 멤버에 대한 포인터의 구현이 지정되지 않고 "원시"값을 얻기 위해 정의 된 변환이 없습니다.
0
공식적으로 이것은 구현에 따라 다릅니다. 실생활에서, 예, 데이터 멤버 포인터에 대한 포인터의 가장 일반적인 구현은 계획과 단순 오프셋, 즉 offsetof
이 평가하는 것과 동일한 것입니다 (또는 기반으로합니다).
일부 구현에서는 정확한 포인터를 사용하여 0xFFF...
패턴을 사용하여 널 포인터 값을 나타냅니다. 일부 구현 예에서는 널 포인터 값에 대해 0x000...
패턴을 예약하고 모든 "null이 아닌"오프셋을 증가 시키려면 1
만큼 패턴을 예약합니다.
관련 문제
- 1. 멤버에 대한 포인터의 오프셋
- 2. 상속 된 데이터 멤버에 대한 포인터 다중 상속
- 3. 보호 된 데이터 멤버에 대한 대안, 특정 사례 연구
- 4. Cpp의 데이터 멤버에 대한 참조 반환
- 5. 클래스의 개인 데이터 멤버에 대한 포인터
- 6. 정렬 된 STL 컨테이너의 키가 허용되는 포인터입니까?
- 7. 자기가 포인터입니까?
- 8. 델리게이트는 함수에 대한 포인터입니까? 또한 변수를 저장합니까?
- 9. ASP.NET 멤버에 데이터 연결
- 10. 추상 템플릿 기본 클래스에 대한 포인터입니까?
- 11. 클래스 멤버에 대한 포인터
- 12. 함수 멤버에 대한 포인터
- 13. 기록 된 데이터의 오프셋 감지
- 14. 불변 개체에 허용되는 포인터입니까?
- 15. 모서리에 대한 DrawLine 오프셋
- 16. 그룹화 : "제한 및 오프셋"은 MySQL에서
- 17. 휘발성 멤버에 대한 액세스 방법
- 18. 클래스 내의 멤버에 대한 포인터
- 19. IE에 대한 올바른 계산을 오프셋?
- 20. NSNotification userInfo 사전 - 복사되었거나 포인터입니까?
- 21. 백그라운드 서비스의 데이터 멤버에 액세스
- 22. Java에서 객체 변수 포인터입니까?
- 23. C++ - 배열이 포인터입니까?
- 24. 원형 클래스 멤버 포인터입니까?
- 25. vim에서 파이썬 클래스 멤버에 대한 omnicompletion이 없습니까?
- 26. char 형 멤버에 대한 템플릿 서명
- 27. dll 파일에 대한 레지스트리 데이터 참조의 음수 오프셋 이해
- 28. 템플릿 변환 생성자가 보호 된 데이터 멤버에 액세스하지 못함
- 29. C++ 11 객체가없는 비 정적 데이터 멤버에 대한 정렬
- 30. 정적 멤버에 대한 Groovy getProperty()
아니요로 가정하면 안됩니다. 컴파일러가 객체에 할당 된 메모리를 관리하기 위해 삽입 할 수있는 오버 헤드 (메모리)를 잊어 버립니다. – DumbCoder
더 좋은 질문은 두 가지 형식을 알고 있기 때문에 회원에게 포인터를 사용하지 않는 이유는 무엇입니까? :) –
내 프로그램이 offsetof를 사용하여 저레벨 트릭을 수행하기 때문에 실제로 포인터를 멤버로 사용하려고합니다. 표준형으로 "올리기"를 원합니다. –