2012-03-28 17 views

答えて

0

Cのようなキャスティングが機能するはずです。唯一の違いは、cl_型を使用することです。しかし、これらはCの型に相当します。 unsigned char型に署名された変換する例えば

cl_char c = 0xF; 
cl_uchar uc = c; 

unsigned char型へのポインタにsigned char型へのポインタを変換する:

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を定義スカラー型とベクトル型。だから、このような何かを行うことができます。

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変換のために特別なことは何もありません。いずれにせよ、あなたの答えはより良いので、私はあなたのポスターを選ぶようポスターに頼んでいます。 –

関連する問題