我不记得能够将构造函数和重载运算符添加到普通 C 中的结构。在我正在阅读的一本书中,它在 CUDA C 的示例中使用了这两者。
如果 C 和 CUDA C 中的结构之间存在任何差异,对它们的一般解释是什么?在书中,他们在 CUDA C 中使用了 C++ 风格的结构。
我不记得能够将构造函数和重载运算符添加到普通 C 中的结构。在我正在阅读的一本书中,它在 CUDA C 的示例中使用了这两者。
如果 C 和 CUDA C 中的结构之间存在任何差异,对它们的一般解释是什么?在书中,他们在 CUDA C 中使用了 C++ 风格的结构。
1)C结构只能包含数据成员,但CUDA C更像是C++风格的类,可以包含函数等。
2) CUDA struct 和 CUDA class 之间唯一的主要区别是前者所有成员默认都是公共的。
CUDA C 实际上是 CUDA C++ 并且依赖于 C++ 编译器。
根据经验nvcc
,编译实际的 C 代码有困难(出于同样的原因,C++ 编译器可能会这样做)。
曾经有一个--host-compilation
选项可以将编译器从 切换C
到 ,C++
但它从来没有工作过。(见这里)