char str[30] VS char str[32]

BuperS의 이미지

안녕하세요. 글을 올리는 건 처음인 것 같은데요. 찾다찾다 못찾아서 여기에 질문합니다 ㅠ

어디서 들었는지 모르겠는데 배열 크기를 2의 배수로 선언하는 것이 좋다고 들었거든요.

그런데 왜 그런지 잘 모르겠네요. 메모리 액세스랑 관계가 있는 것 같긴 한데요..

예를 들어 name이라는 char 배열을 선언하고 싶을 때, 아래의 둘 중 어느 것이 효율적인가요?

A. char name[30]
VS
B. char name[32]

kukyakya의 이미지

메모리 액세스는 배열의 크기가 아니라 alignment에 관련이 있습니다.

따라서 두 가지 모두 성능 자체는 동일합니다.

BuperS의 이미지

답변 감사합니다.

속도면에서 두 가지 모두 성능 자체는 동일하다는 뜻이죠?

그러면 공간면에서는 어떤가요?

만약 4Byte Alignment 환경이라면 char name[30] 이나 char name[32] 이나 할당되는 공간은 같을 것 같은데.. 맞나요?