ptrdiff_t에 대하여...

coco의 이미지

프로그램 소스를 보다 보니깐 변수를 ptrdiff_t형으로 선언을 해서 사용을 하는 것을 보았습니다.

궁금해서 include/STDDEF 헤더화일속을 찾아보니까

#ifndef _PTRDIFF_T_DEFINED
typedef int ptrdiff_t;
#define _PTRDIFF_T_DEFINED
#endif

로 되어 있던데요.

제가 궁금한 것은 ptrdiff_t와 int형과 어떤 점에서 틀리며, 어떤 환경일때 int형을 사용하지 않고, ptrdiff_t형을 사용하는지 궁금합니다.

감사합니다.[/code]

서지훈의 이미지

참고로 declare_t 이런 류의 변수 선언자는 확실한 변수형은 없습니다.
단지 보이는 그대로의 declare_t형일 뿐입니다.
이 놈이 int인지 short인지 long인지는 여기에 관련된 header 파일을 봐야 알 수가 있습니다.
이런 류는 사용하는 시스템에 따라 달라지는 것들이고, 시스템에 알맞게 선언이 되어져 있으니 시스템을 적게 타게 하기 위해서 이런식으로 선언을 합니다.

위에선 만약 어디선가 ptrdiff_t가 정의되어 있다면 정의 되어 있는 되로 사용을 하고 정의가 되어 있지 않다면, int 형으로 선언을 해서 사용을 하겠다는 것입니다.

좀 더 가슴에 와 닫게 설명을 드리고 싶지만...
이게 좀...-_-ㅋ

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

coco의 이미지

가슴에 와 닫는 설명이었습니다.
감사합니다. 꾸뻑..^^

Jesus is Love