C++ 中的类型、性质和含义(什么是)“#call”

Type, nature and meaning (What is ) "#call" in c++

我正在尝试研究用于 CUDA 的简单 MPI 代码。而我遇到了这一行。

cerr << "MPI error calling \""#call"\"\n"; \

什么是#call?与 CUDA、C++ 或 MPI 相关?

这是宏定义的一部分。 call是一个宏参数,大概是一个函数的名字。 # 运算符将其操作数转换为字符串。所以 #call 是一个带有函数名称的字符串。

相邻的字符串连接在一起,因此名称将与 "MPI error calling \"""\"\n" 组合并在 cerr 上输出。

# 运算符是 C/C++ 预处理器的一部分,字符串文字连接对于两种语言也是通用的(但不是预处理器本身的一部分)。所以不,它对 CUDA、C++ 或 MPI 来说并不特殊。