Это аналог маркера stringify #
, но для символов, но он не стандартизирован.Например, clang / llvm не поддерживает его.
Чтобы показать аналогию:
#define MESSAGE(x) printf("%s: %d\n", #x, x)
int main(){
int i = 5;
MESSAGE(i); // expands to printf("%s: %d\n", "i", x)
return 0;
}
Вывод:
i: 5
С компилятором, поддерживающим #@
, вы можете написать:
#define MESSAGE(x) printf("%c: %d\n", #@x, x)
int main(){
int i = 5;
MESSAGE(i); // expands to printf("%c: %d\n", 'i', x)
return 0;
}