c++ - #define 和 CUDA

标签 c++ cuda c-preprocessor

为什么以下代码片段不适用于 CUDA(3.2 和 4.0)?

#define NUM_BLOCKS 16

// lots of code.

dim3 dimBlock(NUM_BLOCKS, NUM_BLOCKS);

但是这个,

dim3 dimBlock(16, 16);

是吗?

我一直收到错误:需要一个“)”错误:需要一个表达式。我错过了什么?

最佳答案

你确定你没有写

#define NUM_BLOCKS 16;

(注意末尾的分号)?

当出现错误分号时,我得到的正是您所描述的错误。

关于c++ - #define 和 CUDA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5210353/

相关文章:

c++ - 如果 Malloc 无法分配 X 字节,我是使用 Realloc 还是再次使用 Malloc? C++

linux - 为什么 CUDA 6.5 示例不适用于 CUDA 5.5?

c - C++ 的 C 预处理器宏中的 # 和 ## 意味着什么

c++ - 如何调试外部调用的 C++ 可执行文件

c++ - matPutVariable: error (matrix::serialize::WrongSize) 试图输出数据到mat文件

video - 不使用 DirectShow 作为 Windows 的 CUDA 视频处理管道的基础是不是很愚蠢?

c - 如何理解宏定义不变

c++ - 预处理器魔术来完成模板中的类型名

c++ - 给定程序中的段错误

asynchronous - CUDA 中异步 memcpy 期间的设备同步