포인터 뺄셈

2015/01/27

포인터 뺄셈으로 인덱스를 구할 때 유용해서 가끔 쓴다.

커널 소스에서는 오프셋 구하기 등으로 이런 트릭을 매크로 단위에서 구현 해 둔 것을 종종 볼 수 있다. 요즘은 커널 소스 안 봐서 모르겠다.

포인터 뺄셈 무용론은 아마도 임인건 터보C정복에서 포인터 뺄셈은 의미 없다고 한 것에서 유래하지 않았나 싶다. 내가 으릴 적에 그걸 원칙으로 알고 있었다.

main()

{
	int a[30];
	int *b = &(a[10]);
	int *c = a;

	int d = b – c;

	printf(“%d\n”, sizeof(int));
	printf(“%d\n”, d);

}