포인터가 바이트 정렬되어야하는 것과 같은 것을 읽습니다. 전형적인 32 비트 아키텍처에서의 필자의 이해 ... 모든 포인터는 바이트 정렬 ... 아니요?포인터는 항상 바이트 단위로 정렬됩니다.
확인해주십시오.
바이트 단위로 정렬되지 않은 포인터가있을 수 있습니까?
기본적으로 tx 디스크립터 메모리에 대한 하드웨어 참조 설명서에 언급되어 있습니다.
포인터가 바이트 정렬되어야하는 것과 같은 것을 읽습니다. 전형적인 32 비트 아키텍처에서의 필자의 이해 ... 모든 포인터는 바이트 정렬 ... 아니요?포인터는 항상 바이트 단위로 정렬됩니다.
확인해주십시오.
바이트 단위로 정렬되지 않은 포인터가있을 수 있습니까?
기본적으로 tx 디스크립터 메모리에 대한 하드웨어 참조 설명서에 언급되어 있습니다.
예, 1 바이트보다 작은 메모리는 처리 할 수 없습니다.
포인터 또는 숫자가 바이트 정렬되지 않으면 바이트 중간에 시작됩니다. 나는. 한 바이트의 일부 비트는 하나의 포인터에 속하고 다른 비트는 다른 포인터에 속하게됩니다. 이것은 이상하고 실제로는 발생하지 않습니다.
바이트가 가장 작은 주소 지정 가능 단위이기 때문에 '발생하지 않음'이 발생하지 않습니다 ... – Spudd86
C에서 포인터는 개체 & dagger를 가리 킵니다.
전체 정수가 아닌 유일한 객체는 비트 필드입니다.
C 언어에서는 비트 필드에 대한 포인터를 만들 수 없습니다. 이 코드는 컴파일러 오류가 발생합니다 :
struct S { unsigned int a:4, b:4, c:4, d:3, e:1; };
int main (void) {
struct S s;
int *i = &s.b; // would point half a byte into s
return 0;
}
포인터는 그들이 가리 개체의 크기의 전체 수에 의해 증가 될 수있다 "비트 필드 'B'의 주소를 취할 수 없습니다."
크기가 1 바이트 미만인 개체에 대한 포인터를 만들거나 포인터를 1 바이트 미만으로 늘릴 수 없기 때문에 1 바이트 미만의 포인터는 가질 수 없습니다.
; C 의미에서 OO 의미가 아닙니다.
+1 단검 및/또는 메모 – ShinTakezou
단어 맞춤을 의미합니까? – Sjoerd
아니요 ... 저는 바이트 정렬에 대해서만 묻습니다. 단어 맞춤에 대해 알고 있습니다 – kumar
"N 바이트 정렬"되지 않았습니까? –