admin管理员组文章数量:1033826
【C99】#,##,#
1.#运算符
#运算符用于将宏参数转换为字符串字面量。这通常用于调试或日志记录,将参数的值以字符串形式输出。
代码语言:javascript代码运行次数:0运行复制#include <iostream>
#define LOG(para) printf("%d,%s\n",para,#para)
int main() {
LOG(10);
return 0;
}
#include <iostream>
// #define LOG(para) printf("%d,%s\n",para,#para)
#define str(x) #x
int main() {
char* s=str(10);
std::cout<<s;
return 0;
}
2.##运算符
##
运算符用于将两个标记(tokens)拼接成一个单独的标记。这在需要动态生成标识符时非常有用。
#define MAKE_ID(a, b) a##b
int main() {
int value123 = 42;
int id = MAKE_ID(value, 123);
return 0;
}
3.#__VA_ARGS__
#__VA_ARGS__
是 #
和 __VA_ARGS__
的组合,用于将可变参数列表转换为字符串。这在定义可变参数宏时非常有用,特别是在需要将参数列表作为字符串输出时。
#define LOG(...) printf("Message: " #__VA_ARGS__)
int main() {
LOG(Hello, world!);
return 0;
}
4. ##__VA_ARGS__
##__VA_ARGS__
是 ##
和 __VA_ARGS__
的组合,用于处理可变参数为空的情况。当没有参数传递给宏时,##
会移除多余的逗号,避免语法错误。
#include <iostream>
#define LOG(level, ...) printf(level, ##__VA_ARGS__)
int main() {
LOG("Hello, world!","aaa");
LOG("a");
return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-03-28,如有侵权请联系 cloudcommunity@tencent 删除日志调试字符串c99int【C99】#,##,#
1.#运算符
#运算符用于将宏参数转换为字符串字面量。这通常用于调试或日志记录,将参数的值以字符串形式输出。
代码语言:javascript代码运行次数:0运行复制#include <iostream>
#define LOG(para) printf("%d,%s\n",para,#para)
int main() {
LOG(10);
return 0;
}
#include <iostream>
// #define LOG(para) printf("%d,%s\n",para,#para)
#define str(x) #x
int main() {
char* s=str(10);
std::cout<<s;
return 0;
}
2.##运算符
##
运算符用于将两个标记(tokens)拼接成一个单独的标记。这在需要动态生成标识符时非常有用。
#define MAKE_ID(a, b) a##b
int main() {
int value123 = 42;
int id = MAKE_ID(value, 123);
return 0;
}
3.#__VA_ARGS__
#__VA_ARGS__
是 #
和 __VA_ARGS__
的组合,用于将可变参数列表转换为字符串。这在定义可变参数宏时非常有用,特别是在需要将参数列表作为字符串输出时。
#define LOG(...) printf("Message: " #__VA_ARGS__)
int main() {
LOG(Hello, world!);
return 0;
}
4. ##__VA_ARGS__
##__VA_ARGS__
是 ##
和 __VA_ARGS__
的组合,用于处理可变参数为空的情况。当没有参数传递给宏时,##
会移除多余的逗号,避免语法错误。
#include <iostream>
#define LOG(level, ...) printf(level, ##__VA_ARGS__)
int main() {
LOG("Hello, world!","aaa");
LOG("a");
return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-03-28,如有侵权请联系 cloudcommunity@tencent 删除日志调试字符串c99int本文标签: C99,,
版权声明:本文标题:【C99】#,##,# 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1748086274a2250366.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论