gpt4 book ai didi

c++ - 使用 __LINE__ 获取代码行

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:35 25 4
gpt4 key购买 nike

我尝试使用以下方法打印当前代码的行号:

#include <stdio.h>

void err (char *msg)
{
printf ("%s : %d" , msg , __LINE__);
}

int main ( int argc , char **argv )
{
ERR ("fail..");
return 0;
}

但我总是得到错误的行号,它应该是 10 而不是 5,我该如何解决这个问题?

我还尝试使用一些宏:

#define ERR (msg) do { printf ("%s : %d\n", msg , __LINE__); } 而 (0)

并导致错误:msg not declared

最佳答案

__LINE__ 将为您提供它出现的行,总是第 5 行。

要使其正常工作,您需要将 __LINE__ 作为单独的参数传入。

#include <stdio.h>

void err (char *msg, int line)
{
printf ("%s : %d" , msg , line);
}

int main ( int argc , char **argv )
{
err("fail..", __LINE__);
return 0;
}

更好的方法是将此类方法的调用定义为,如下所示:

#define PRINTERR(msg) err((msg), __LINE__)

关于c++ - 使用 __LINE__ 获取代码行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7929291/

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