✅ 목표 (Goal)

구현 의존도가 무엇인지 알아보자.

🥕 당근이의 한마디

PC에서 C/C++ 코딩할때

정수형을 입력받거나 출력하려면 대충 int로 만들고,

값이 뭐 20억이 넘어갈 정도라면, 뭐 대충 long으로 만들면 된다.

그런데, 아래와 같이 데이터형에 민감한 경우라면 좀 신경을 써야 한다.

예를 들어 uint32_t와 int에 데이터를 담을때

그냥 적당히 천만, 1억 넣을때는 별 상관없는데

해당 비트열로 암호화를 한다 하면, 값이 달라지기 때문이다.

✅ 머신 별로 데이터형의 사이즈가 달라지는 예시

// If your machine uses different data types, you must change them to proper ones.
#ifndef TYPE_DEFINITION
    #define TYPE_DEFINITION
    #if defined(__alpha)
        typedef unsigned int        DWORD;	// unsigned 4-byte data type
        typedef unsigned short      WORD;		// unsigned 2-byte data type
    #else
        typedef unsigned long int   DWORD;	// unsigned 4-byte data type
        typedef unsigned short int  WORD;		// unsigned 2-byte data type
    #endif
    typedef unsigned char           BYTE;		// unsigned 1-byte data type
#endif