在此代码片段中,我希望 MatrixMultiplication() 方法中的“printf”命令显示其文本。它没有,即使“size”已在前一行声明并且“test”设置为 1。这是代码:
void MatrixMultiplication(float * M, float * N, float * P, int Width, int test)
{
int size = Width * Width * sizeof(float);
#if defined size
if (test)
{
printf("Should be equal to %d. Int size:%d", Width * Width * sizeof(float), size);
}
#endif
}
int main (int argc, char ** argv)
{
// Omitted for brevity...
int test = 1;
// Omitted for brevity...
MatrixMultiplication(hostM, hostN, reference, atoi(matrix_id), test);
// Omitted for brevity...
}
我正在使用以下命令进行编译:
nvcc -I/home/sbu/NVIDIA_GPU_Computing_SDK/C/common/inc -L/home/sbu/NVIDIA_GPU_Computing_SDK/C/lib -o matrixmul matrixmul.cu -lcutil_x86_64
nvcc 是否有某些东西使这种“#if defined”命令不起作用?我之前在使用 gcc 的本机C和 C++ 代码中使用过这种语法,它工作得很好。
对这个问题的任何启发都会很棒!
这是关于 Pastebin 的完整代码:http: //pastebin.com/SusnpgFc