c++关键字关于CUDA的C代码

C++ keywords on CUDA C code

本文关键字:代码 CUDA 关键字 c++      更新时间:2023-10-16

我正在使用CUDA来加速C程序的某些部分。这个程序使用一些c++关键字作为标识符,因此它不能编译为c++。现在我用CUDA改变了它,我怎么能用NVCC编译它?

例如,我得到错误:

table.h(65): error: expected an identifier

:

struct sw_table_position {
    unsigned long private[4];
};

在C中完全有效,但在c++中无效。我使用CUDA 5.

NVCC编译c++代码,而不是C代码。即使它假装在现实中使用C代码,你也只是得到了更像C的行为,而不是C编译器(见这篇文章)。由于这个原因,private是一个关键字,不能用作标识符(像任何其他c++关键字)。

实际上--host-compilation C弃用的(它不应该与nvcc一起使用),因为在现实中它不会做你期望的