_man(C99) restrict 포인터
restrict 키워드 컴파일을 할 때 최적화를 위해서 사용하는 키워드이다. 어떤 방식으로 최적화 되는지 알아보기 위해 간단한 함수 두개를 비교해보자. 간단한 함수 작성 void increase(int *a, int *b, int *x) { *a += *x; *b += *x; } void restrict_increase(int *restrict a, int *restrict b, int *restrict x) { *a += *x; *b += *x; } 포인터를 받아서 x만큼 더하는 간단한 함수이다. restrict를 사용했을 때 어셈블리어에 어떤 변화가 생겼을까? obj 파일 분석 void increase(int *a, int *b, int *x) { *a += *x; restrict.o[0x4] : m..
2022.03.13