我在启用了 printf 扩展的 ATI 卡上使用 OpenCL。我写了一个函数来打印出变量:
void printVar(constant char* name, float var)
{
printf("%s: %f\r\n", name, var);
}
此代码在编译为纯 C 时按预期工作,但如果我在 OpenCL 中调用它
printVar("foo", 0.123);
结果总是一些随机字符后跟 0.123 而不是“foo:0.123”。我猜编译器在识别 char* 字符串时存在问题,是否有解决方法或修复方法,以便我可以使函数正常工作?