valuable attribute (align) 할당 후 크기 확인법

cefm의 이미지


attribute align 예제를 보면 다음과 같은 예제가 있습니다.

int x __attribute__ ((aligned (16))) = 0;

그래서 아래와 같이 코딩을 했는데 결과가 이상해서요

int main()
{
int x __attribute__ ((aligned (16))) = 0;
printf("%d\n",sizeof(x));

return 0;

}

gcc -o pro pro.c

./pro
4

결과가 16이 나올거라고 생각했는데 4가 나오는 걸 보면 attribute 가 안먹은걸까요?
아니면 제가 잘못생각하고 있는 걸까요?

많은 조언 부탁드립니다.

익명 사용자의 이미지

attribute align은 제가 알기론 메모리 주소를 x에 align 해준다는 말아닌가요?

printf("%d\n", &x) 를 찍어 보시면 16의 배수로 나오는 방법으로 확인을 해야할 듯 합니다.

익명 사용자의 이미지

제가 초보다 보니 어떤 기능인지 오해가 있었습니다.
답변 감사드립니다.