다음을 통해 공유


강력한 입력

C는 약한 형식의 언어입니다. 즉, 컴파일러는 할당 및 다른 형식의 변수 간 비교와 같은 작업을 허용합니다. 예를 들어 C를 사용하면 변수 값을 다른 형식으로 캐스팅할 수 있습니다. 동일한 식에서 서로 다른 형식의 변수를 사용하는 기능은 유연성과 효율성을 높입니다.

강력한 형식의 언어는 다양한 형식의 변수 중 작업에 제한을 적용합니다. 이러한 경우 컴파일러는 작업을 금지하는 오류를 발생합니다. 데이터 형식에 대한 이러한 엄격한 지침은 잠재적인 오류를 방지하도록 설계되었습니다.

원격 프로시저 호출에 C와 같은 약한 형식의 언어를 사용하는 경우의 어려움은 분산 애플리케이션이 서로 다른 C 컴파일러 및 다른 아키텍처가 있는 여러 컴퓨터에서 실행할 수 있다는 것입니다. 애플리케이션이 하나의 컴퓨터에서만 실행되는 경우 데이터가 일관된 방식으로 처리되므로 내부 데이터 형식에 신경 쓰지 않아도 됩니다. 그러나 분산 컴퓨팅 환경에서는 다른 컴퓨터가 기본 데이터 형식에 대해 서로 다른 정의를 사용할 수 있습니다. 예를 들어 일부 컴퓨터는 int 형식을 정의하므로 내부 표현은 16비트이고 다른 컴퓨터는 32비트를 사용합니다. "little endian"이라고 하는 하나의 컴퓨터 아키텍처는 가장 낮은 메모리 주소에 데이터의 가장 중요한 바이트를 할당하고 가장 중요한 바이트를 가장 높은 주소에 할당합니다. "big endian"이라고 하는 또 다른 아키텍처는 해당 데이터와 연결된 가장 높은 메모리 주소에 가장 중요한 바이트를 할당합니다.

원격 프로시저 호출에는 매개 변수 형식을 엄격하게 제어해야 합니다. 네트워크를 통해 데이터 전송 및 변환을 처리하기 위해 MIDL은 네트워크를 통해 전송되는 데이터에 대한 형식 제한을 엄격하게 적용합니다. 이러한 이유로 MIDL에는 잘 정의된 기본 형식 집합이 포함됩니다. MIDL은 데이터의 크기와 형식을 명확하게 정의하는 키워드 사용을 의무화하여 강력한 입력을 적용합니다. 강력한 입력의 가장 눈에 띄는 효과는 MIDL이 void *형식의 변수를 허용하지 않는다는 것입니다.

다음 topics 이 섹션에서는 강력한 데이터 입력을 적용하는 MIDL 언어 기능에 대해 설명합니다.