gpt4 book ai didi

c++ - 用于计算文件中字符串数量的预处理器

转载 作者:行者123 更新时间:2023-11-30 20:54:38 26 4
gpt4 key购买 nike

我想要一个宏(或任何其他有效的东西)可以遍历 C/C++ 文件,并计算特定字符串(在物理 C/C++ 文件中)出现的次数。

#define numInFile(str) [???]

int main() {
printf("blahblah");
printf("You've used printf %d times", numinFile ("printf") - 2); //-2 account for this call
return 0;
}

编辑:问题最初专门针对使用此功能进行退出调用。现在它已推广到任何用途。

最佳答案

如果我理解正确的话,您希望拥有唯一的错误代码,以便可以追溯到发生错误的行?

我会解决这个问题Y question instead of your X one :

您可以使用__LINE____LINE__ 扩展为当前行号的整数常量。您可以#define退出为:

#define quit(code) (quit)(__LINE__+(code))
void (quit)(code) { // seperate func in case you want to do more
exit(code);
}

请记住,进程的退出代码并不是编码此类信息的最佳方式。在 POSIX 上,仅保证退出代码的低 8 位可用。但由于您已经使用 300 作为基值,我假设您使用的是 Windows 或其他一些系统,这不是问题。

出于调试目的,或者考虑在发生错误时写入 stderr(可能带有命令行标志)。

如果 exit 只是一个示例,并且您打算在应用程序中使用它,则可以将 __LINE____FILE__ 保存在全局 (或 _Thread_local) 错误变量并仅在错误代码中存储退出原因。

<小时/>

关于你的 X 问题,预处理器不会做这样的事情。您必须将此类任务卸载到构建脚本可以调用的 shell/perl/任何脚本。

关于c++ - 用于计算文件中字符串数量的预处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38571299/

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