定义宏后的哈希符号
Hash symbol after define macro?
第二个
定义之后,'#'符号有什么作用?第二条线还不够吗?为什么是第一个?
#define MAKESTRING(n) STRING(n)
#define STRING(n) #n
这是字符串化操作,它将从宏参数生成字符串文字,例如 "n"
.需要两行才能允许宏参数的额外扩展,例如:
// prints __LINE__ (not expanded)
std::cout << STRING(__LINE__) << std::endl;
// prints 42 (line number)
std::cout << MAKESTRING(__LINE__) << std::endl;
哈希符号将宏参数转换为 c 字符串。例如
#define MAKESTRING(x) #x
printf(MAKESTRING(text));
将打印text
第一行只是此宏的替代名称。
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 使用Qt C++计算类似Git的SHA1哈希
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 用C++将哈希表写入文件并从文件中恢复
- c++找不到具有相同哈希的无序集合元素
- 哈希文件递归并保存到矢量Cryptopp中
- 对 pair<pair<int,int>pair<int,int unordered_map进行哈希处理>>
- 直接在 unordered_map 的方法中使用哈希,而不是生成哈希的用户定义对象
- 如何为字符串生成唯一但一致的 N 位哈希(小于 64 位)?
- 定义宏后的哈希符号
- C++ concurrent_unordered_map C++11 Microsoft 使用无符号长作为密钥/哈希函数
- 对于具有 3 个无符号字符和一个 int 的结构来说,对于unordered_map来说,什么是好的哈希函数?
- gcc 预处理的表单哈希符号 + 数字"# 1"输出行是什么意思?
- 在 C/C++ 预处理器中,单个井号/哈希符号 (#) 在自己的行上有什么用
- 迁移一个哈希函数,其中包含从 C++/Qt 到 Java 的 32 位无符号整数
- 三个有符号整数的哈希函数
- 试图创建一个for循环来显示从1(#)到8(#)的哈希符号
- 使用哈希表构建符号表
- 如何在 c++ 中regex_match #(哈希符号)