C에서 (유형)값과 유형(값)의 뉘앙스 이해
C에서는 명시적 유형 캐스팅을 위해 두 가지 다른 구문이 존재합니다. : (유형)값 및 유형(값). 이러한 구별은 다음과 같은 질문을 제기합니다: 이 두 표현식 사이에 차이점이 있다면 무엇입니까?
간단한 캐스팅에는 차이가 없습니다
C 표준에 따르면(섹션 5.2 .3) 단순 유형 지정자 뒤에 괄호로 묶인 단일 표현식이 오면 결과 표현식은 주어진 표현식에서 지정된 유형의 값을 생성합니다.
(유형)값과 동치 type(value)
단일 표현식의 경우 (type)value는 정의와 의미 모두에서 type(value)와 동일합니다. 이는 단일 값을 지정된 유형으로 캐스팅할 때 이 두 표현식 사이에 전혀 차이가 없다는 것을 의미합니다.
여러 값의 차이점
그러나 미묘한 차이가 발생합니다. 쉼표로 구분된 값 목록을 캐스팅할 때. 이 경우 지정된 유형이 적절하게 선언된 생성자가 있는 클래스인 경우 type(x1, x2, ...)는 지정된 값을 사용하여 T 유형의 임시 변수 t를 생성하고 t 값을 다음에 할당하는 것과 동일합니다.
유형 이름 제한
추가 참고 사항으로 type(value) 구문을 사용할 수 없는 특정 유형 이름이 있습니다. 예를 들어, (char )string은 유효하지만 char (string)은 컴파일에 실패합니다. 그러나 typedef를 사용하여 유형의 별칭을 지정하는 경우 별칭 이름과 함께 type(value) 구문을 사용할 수 있습니다.
위 내용은 C 캐스팅에서 (유형)값과 유형(값) 사이의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!