为什么OpenCL在cpp中使用0xdeadbeef?

sil*_*gon 1 c++ opencl

在这个HandsOnOpenCL示例中,他们使用类似下面的内容来声明向量.

std::vector<float> h_a(LENGTH);                // a vector 
std::vector<float> h_b(LENGTH);                // b vector  
std::vector<float> h_c (LENGTH, 0xdeadbeef);   // c vector (result)
Run Code Online (Sandbox Code Playgroud)

唯一使用0xdeadbeef的是结果向量.但我不明白为什么.有什么想法吗?

Jon*_*y D 6

OpenCL一般不会将此值用于任何事情.使用OpenCL的这个特定示例0xdeadbeef用于初始化一些向量.它这样做是为了您可以使用这个众所周知的值来验证计算结果.

每当您看到此值时,它肯定会用于调试或验证目的.如果在执行程序期间没有更改该值,那么您肯定知道出现了问题,并且有一个错误需要修复.