2012-03-28 2 views

답변

0

캐스팅과 같은 효과가 있습니다. 유일한 차이점은 cl_ 유형을 사용한다는 것입니다. 그러나 이것들은 C 타입과 동일하다.

는 예를 들어, 서명 숯불에 서명 변환하려면

cl_char* cArr = // Points to char array 
cl_uchar* ucArr = (cl_uchar*) cArr; // Access char array as uchar array 
+0

그'cl_' 접두사 모든 유형의 내부 평균 추정된다. 나는 그것이 그 질문이 무엇인지에 관해 생각하지 않는다. – talonmies

1

의 OpenCL 표준은 모든 내장에 대한 explicit conversion functions를 정의

cl_char c = 0xF; 
cl_uchar uc = c; 

이 서명 숯불에 포인터에 서명 문자에 대한 포인터를 변환하려면 - 스칼라 및 벡터 유형. 그래서 당신은 같은 것을 할 수 있습니다

char signed_val = 10; 
uchar unsigned_val = convert_uchar(signed_val); 
+0

Talonmies : 정보를 제공해 주셔서 감사합니다. 일반 캐스팅 대신 이러한 변환 기능이 필요한 이유는 무엇입니까? –

+0

@Ashwin : 부동 소수점은 다양한 IEEE-754 반올림 규칙을 명시 적으로 제어합니다. 반올림 규칙은 캐스팅하지 않습니다. 또한이 함수는 표준 C99에없는 모든 OpenCL 관련 벡터 유형을 지원합니다. 그렇지 않으면 일관된 인터페이스와 더 나은 프로그래밍 방식이 필요하다고 생각합니다. 프로그래머가 항상 IMHO라는 좋은 변환 동작을 명시 적으로 선택해야합니다. – talonmies

+1

Talonmies : 올바르게 이해한다면, 변환 기능이 char-uchar 변환을 위해 특별히하는 것은 없습니다. 어쨌든 당신의 답변이 더 좋으며 포스터에게 귀하의 것을 선택하도록 요청할 것입니다. –

관련 문제