gpt4 book ai didi

c - 在 C 程序的日志语句中自动插入文件名和行号

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:40 24 4
gpt4 key购买 nike

我正在用 C 为嵌入式 ARM 处理器编写程序。我想在日志语句中查看源文件名和行号。

由于编译代码不知道行号和源文件,我正在寻找在编译过程之前/期间自动插入它的方法。

是否有任何标准工具或编译器功能可供我使用?

我正在使用 GCC。

例如:

这是我要在源文件中写的内容:

log("<#filename#> <#linenumber#> : Hello World");

这是实际编译的内容:

log("Foobar.c 225 : Hello World");

最佳答案

通常你会做这样的事情:

// logging function
void log(const char * file, const int line, const char *msg)
{
fprintf(stderr, "%s:%d: %s\n", file, line, msg);
}

// logging macro - passes __FILE__ and __LINE__ to logging function
#define LOG(msg) do { log(__FILE__, __LINE__, msg) } while (0)

然后当你想记录一些东西时:

LOG("We made it to this point!");

然后将生成一条日志消息,例如:

foo.c:42: We made it to this point!

关于c - 在 C 程序的日志语句中自动插入文件名和行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23916351/

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