[c언어] 무한 데이터 타입

C 언어는 정적 타입을 가지는 언어로, 변수는 선언 시에 타입이 결정됩니다. 그러나 C 언어에는 타입이 정해지지 않은 데이터를 다룰 수 있는 기능이 있습니다. 이를 무한 데이터 타입이라고 합니다.

무한 데이터 타입이란?

C 언어에서 무한 데이터 타입은 void 포인터를 사용하여 구현됩니다. void 타입은 “아무 것도 없는” 것을 나타내는 타입으로, 일반적인 데이터 타입이 아닌 일종의 일반화된 포인터 타입입니다.

void *ptr;

위와 같이 void 포인터를 사용하면 어떠한 타입의 데이터도 가리킬 수 있습니다. 이는 동일한 포인터 변수를 사용하여 다양한 데이터 타입을 다룰 수 있는 유연성을 제공합니다.

무한 데이터 타입의 활용

무한 데이터 타입은 주로 다양한 데이터를 다루는 컨테이너나 함수와 같은 범용적인 기능을 구현할 때 유용하게 활용됩니다.

void printData(void *data, int dataType) {
    switch (dataType) {
        case 1:
            printf("%d\n", *(int *)data);
            break;
        case 2:
            printf("%f\n", *(float *)data);
            break;
        case 3:
            printf("%s\n", (char *)data);
            break;
        default:
            printf("Unsupported data type\n");
    }
}

위와 같이 void 포인터를 활용하여 다양한 데이터 타입을 처리하는 함수를 구현할 수 있습니다.

주의사항

무한 데이터 타입은 타입 안정성이 보장되지 않기 때문에 잘못된 캐스팅이나 잘못된 데이터 접근으로 인한 오류가 발생할 수 있습니다. 따라서 무한 데이터 타입을 사용할 때에는 주의하여야 합니다.

무한 데이터 타입은 C 언어의 강력한 기능 중 하나로, 올바르게 활용할 경우 매우 유용합니다. 그러나 잘못 사용할 경우 예상치 못한 문제를 일으킬 수 있으므로 신중히 다뤄져야 합니다.

참고 자료