gpt4 book ai didi

将预处理器标记转换为字符串

转载 作者:太空狗 更新时间:2023-10-29 16:17:11 28 4
gpt4 key购买 nike

我正在寻找一种将预处理器标记转换为字符串的方法。

具体来说,我有:

#define MAX_LEN 16

我想用它来防止缓冲区溢出:

char val[MAX_LEN+1]; // room for \0
sscanf(buf, "%"MAX_LEN"s", val);

我愿意接受其他方法来完成同样的事情,但仅限于标准库。

最佳答案

参见 http://www.decompile.com/cpp/faq/file_and_line_error_string.htm具体来说:

#define STRINGIFY(x) #x
#define TOSTRING(x) STRINGIFY(x)
#define AT __FILE__ ":" TOSTRING(__LINE__)

所以你的问题可以通过做来解决sscanf(buf, "%"TOSTRING(MAX_LEN) "s", val);

关于将预处理器标记转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/240353/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com