유형 정의 란 무엇입니까?

데이터 유형에 대해 읽을 때 “유형 정의”는 의미에 대한 사전 설명없이 자주 사용됩니다.

예 : https://en.wikipedia.org/wiki/Type_system 에는 “… C ++에 유형 정의 …”

예 : 유형 유형 정의 는 대단히 감사합니다!

댓글

  • 유형 이 무엇인지 아십니까? 그런 다음 유형 정의 는 용어에서 알 수 있듯이 유형의 정의입니다. ' 진짜 질문이 무엇인지 잘 모르겠습니다.

답변

유형 “정의”는 하나 이상의 기존 데이터 유형으로 구성된 새로운 유형을 구축하는 행위입니다. 예를 들어, “복소수”유형은 종종 “실수”의 순서 쌍으로 선언됩니다.

Type Complex Real a Real b End 

a 및 b는 실수 및 허수 부분입니다. .

이 의사 코드 샘플은 “유형 정의”입니다.

댓글

  • 나는 ' 이것이 '라고 생각하지 않습니다 … 추상 데이터 유형을 정의하는 것은 물론 유형 정의이지만 strong과는 관련이 없습니다. 또는 약한 타이핑 (질문의 일부)

답변

From “The C ++ Programming Language”-by Bjarne C ++의 창시자에게 힘을 실어주세요.

유형은 가능한 값 집합과 작업 집합 (객체 용)을 정의합니다.

또한 다음 정의는 동일한 책에서 가져온 유형과 상호 관련되어 있습니다.

선언은 진술입니다. 프로그램에 이름을 소개합니다. 명명 된 엔티티의 유형

객체는 특정 유형의 값을 보유하는 메모리입니다.

값은 유형에 따라 해석되는 비트 세트입니다.

변수는 명명 된 개체입니다.

댓글

  • 이것은 ' 유형 정의 를 언급하지 않습니다.

답변

변수는 정수, 실수, 문자 등 다양한 종류의 값을 포함 할 수 있습니다.이를 변수의 TYPE이라고합니다. 일부 언어는 동적으로 입력됩니다. 즉, 인터프리터 또는 컴파일러가 변수 유형을 결정합니다. 정적 유형 언어에서는 변수를 선언 할 때 유형을 직접 정의해야합니다. 이것이 TYPE DEFINITION입니다.

강력한 유형의 정적 언어에서 규칙은 다른 유형을 혼합하는 것을 금지합니다. 예를 들어 실수와 정수를 추가하려면 정수를 실수로 명시 적으로 캐스팅해야합니다.

약한 유형 언어에서는 유형을 혼합 할 수 있습니다. 그러나 낮은 수준의 비트 패턴은 유형마다 다르기 때문에 원하지 않는 결과를 얻을 수 있습니다.

대부분의 언어는 중간에 있습니다. 원치 않는 효과는 허용되지 않는 반면 명시 적 캐스트의 필요성은 코드를 무겁게 만듭니다. 따라서 대부분의 컴파일러는 일부 표준 작업에 대해 암시 적 캐스트를 수행합니다. 이 경우 실수와 정수를 추가하면 암시 적으로 실수로 캐스트가 발생합니다.

댓글

  • " pe " 란 무엇입니까? ? 또한 ' 첫 단락 이후에 작성한 '이 질문과 어떻게 관련되는지 알 수 없습니다.
  • @ David : pe = exempli gratia = 예를 들어 = 예를 들어 … 문장 " … C ++에는 유형 정의에 관한 더 강력한 규칙이 있기 때문에 … "는 질문이 약하고 강한 타이핑의 맥락에서 묻는다는 것을 보여줍니다.
  • Aha-that ' s " 예 ", 영어-수정 됨
  • 정말 그렇습니다. 내 실수입니다.
  • 이 답변은 유형 및 유형 시스템에 대한 다양한 심각한 오해를 보여줍니다. 이 답변의 거의 모든 문장이 잘못되었거나 혼란 스럽거나 오해의 소지가 있습니다. 우선 유형 시스템은 변수에 관한 것이 아닙니다. 3+'a'는 변수를 포함하지 않고 ' 유형 검사를받습니다. 동적으로 " 입력 된 " 언어 구현은 ' " 모든 유형을 " 결정합니다. 암시 적 변환은 ' 언어를 더 " 동적으로 " 또는 " 약하게 " 입력했습니다.일반적으로 정적 및 동적 " 입력 "은 스펙트럼의 반대쪽 끝이 아니라 단순히 완전히 다른 것에 대해 이야기하는 것입니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다