ZHCUAQ1G June 2015 – August 2025
除了向量运算之外,还提供 printf() 支持以输出向量数据。请参阅 OpenCL 规范 1.2 版的第 6.12.13 节,了解使用 printf() 设置向量数据类型格式的详细信息。请注意,德州仪器 (TI) C6000 的实现方式与 OpenCL 规范在以下方面具有差别:
即 ll 长度修饰符指定,以下 d、i、o、u、x 或 X 转换指定符适用于 longlongn 或 ulonglongn 参数。如 OpenCL 规范中所述,将 l 长度修饰符用于 64 位 doublen 参数。
以下示例声明、初始化并打印四个 32 位浮点值的矢量,四个 8 位 unsigned char 值的矢量,以及两个 64 位 long long 值的矢量。
float4 f4 = float4(1.0f, 2.0f, 3.0f, 4.0f);
uchar4 uc = uchar4(0xFA, 0xFB, 0xFC, 0xFD);
longlong2 bigNums = longlong2(600000000000, -600000000000);
printf("f4 = %2.2v4hlf\n", f);
printf("uc = %#v4hhx\n", uc);
printf("bigNums = %+v2lld\n", bigNums);此示例打印包含浮点值的向量,使用 %2.2v4hlf 格式字符串,输出至少 2 位宽度的值,精度为 2 ( 2.2 ),向量长度为 4 ( v4 ),具有 floatn 长度修饰符 ( hl ),使用 float 类型指定符 ( f )。
此示例打印包含 uchar 值的向量,使用 %#v4hhx 格式字符串,输出 0x 前缀 ( # ),后跟长度为 4 的向量 ( v4 ),具有 charn 或 ucharn 长度修饰符 ( hh ),使用小写十六进制标记 ( x )。
此示例打印包含 long long 值的向量,使用 %+v2lld 格式字符串,输出具有 + 或 - 前缀的值 ( + ),后跟长度为 2 的向量 ( v2 ),具有 longlongn 或 ulonglongn 长度修饰符 ( ll ),使用十进制标记 ( d )。
/* Output */
f4 = 1.00,2.00,3.00,4.00
uc = 0xfa,0xfb,0xfc,0xfd
bigNums = +600000000000,-600000000000