«memory-layout» 태그된 질문

3
C의 구조 메모리 레이아웃
C # 배경이 있습니다. 저는 C와 같은 저수준 언어의 초보자입니다. C #에서 struct의 메모리는 기본적으로 컴파일러에 의해 배치됩니다. 컴파일러는 데이터 필드를 재정렬하거나 암시 적으로 필드 사이에 추가 비트를 채울 수 있습니다. 따라서 정확한 레이아웃을 위해이 동작을 재정의하기 위해 몇 가지 특수 속성을 지정해야했습니다. AFAIK, C는 struct기본적 으로 a의 메모리 레이아웃을 …

7
C에서 포인터 비교는 어떻게 작동합니까? 같은 배열을 가리 키지 않는 포인터를 비교해도 괜찮습니까?
K & R (C Programming Language 2nd Edition) 5 장에서 다음을 읽었습니다. 첫째, 특정 상황에서 포인터를 비교할 수 있습니다. 경우 p와 q다음의 관계가 좋아 점 같은 배열의 구성원에 ==, !=, <, >=제대로, 등 일을. 동일한 배열을 가리키는 포인터 만 비교할 수 있음을 의미하는 것 같습니다. 그러나이 코드를 시도했을 때 char …

2
[[no_unique_address]] 및 동일한 유형의 두 멤버 값
[[no_unique_address]]에서 놀고 있습니다 c++20. cppreference 의 예에서는 빈 유형 Empty과 유형이 있습니다.Z struct Empty {}; // empty class struct Z { char c; [[no_unique_address]] Empty e1, e2; }; 분명히,의 크기는 Z최소한이어야 2하기 때문에 종류의 e1와 e2동일합니다. 그러나, 나는 정말로 Zsize 를 갖고 싶다 1. 이것은 나에게 무엇을 포장에 대한 생각 …

1
빈 기본 클래스가 멤버 변수 인 경우 빈 기본 최적화가 금지 된 이유는 무엇입니까?
빈 기본 최적화 가 훌륭합니다. 그러나 다음과 같은 제한 사항이 있습니다. 비어있는 기본 클래스 중 하나가 첫 번째 비 정적 데이터 멤버의 유형이거나 해당 유형 인 경우 비어있는 기본 최적화는 금지됩니다. 동일한 유형의 두 기본 서브 오브젝트는 오브젝트 표현 내에서 다른 주소를 가져야하기 때문입니다. 가장 많이 파생 된 유형의 이 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.