【发布时间】:2013-05-06 20:58:04
【问题描述】:
我正在尝试在 CUDA 中做这样的事情:
char_sig=code[k][1] & 0b00000010;
NVCC 编译器不断给我错误,预期为“;”
相同的代码适用于 GCC C 编译器。我注意到问题在于将二进制值设置为 0b00000010,是否还有其他 NVCC 期望的符号?
【问题讨论】:
我正在尝试在 CUDA 中做这样的事情:
char_sig=code[k][1] & 0b00000010;
NVCC 编译器不断给我错误,预期为“;”
相同的代码适用于 GCC C 编译器。我注意到问题在于将二进制值设置为 0b00000010,是否还有其他 NVCC 期望的符号?
【问题讨论】:
使用0b 前缀的二进制常量是gcc extension,它不是标准C99 或C++98/C++03 的一部分。 CUDA 工具链所基于的 open64 和 LLVM/clang 编译器不支持这一点。您需要将常量转换为八进制、十六进制或十进制才能在 CUDA 中使用它们。
【讨论】: