5.5 类型转换

2018-08-28 10:34:57 浏览数 (1)

文章内容源自《GPU编程与CG语言之阳春白雪下里巴人》,因笔者读书易中途放弃,遂每读一章节,将其移至简书平台,以此作为对自己读书的勉励。笔者用粗体斜体 标注了关键词句,望感兴趣的读者们一起学习共勉。猛戳这里查看更多!

5.5 类型转换

Cg 中的类型转换和 C 语言中的类型转换很类似。C 语言中类型转换可以是强制类型转换,也可以是隐式转换,如果是后者,则数据类型从低精度向高精度转换。在 Cg 语言中也是如此。例如:

代码语言:javascript复制
float a = 1.0;
half b = 2.0;
float c = a b; //等价于 float c = a   (float)b;

当有类型变量和无类型常量数据进行运算时,该常量数据不做类型转换,举例如下:

代码语言:javascript复制
float a = 1.0;
float b = a   2.0; //2.0 为无类型常量数据,编译时作为 float 类型

Cg 语言中对于常量数据可以加上类型后,表示该数据的类型,例如:

代码语言:javascript复制
float a = 1.0;
float b = a   2.0h; //2.0h 为 half 类型常量数据,运算是需要做类型转换

常量的类型后(type suffix)有 3 种:

  • f :表示 float;
  • h: 表示 half;
  • x: 表示 fixed

0 人点赞