gpt4 book ai didi

c - C 程序中 printf()/fprintf() 输出的调试字符串的缩进(和换行缩进)

转载 作者:行者123 更新时间:2023-11-30 16:02:56 24 4
gpt4 key购买 nike

我在函数中使用 printf() 进行调试输出,但输出从第一列开始进入控制台。我想通过每次深入函数时缩进函数的输出字符串来区分函数的嵌套级别(它很容易实现,有一个 static int indentlevel; 变量,该变量在函数开头递增函数,用作空格填充计数并在末尾递减)。但缺陷是,一旦输出行变得太长而无法在控制台边缘换行,行的换行部分将从控制台的第 1 列开始。我是否应该注意这一点,因为一旦输出重定向到文件,行就是一行长度,并且行的宽度仅取决于文本文件查看器设置?

最佳答案

如果您使用 gcc,则可以使用 -finstrument-functions 编译器选项来导致在每个函数的入口和导出处调用检测函数。

      void __cyg_profile_func_enter (void *this_fn,
void *call_site);
void __cyg_profile_func_exit (void *this_fn,
void *call_site);

您可以定义这些函数来跟踪嵌套级别。

警告:我还没有真正尝试过这个(还有另一件事我还没有完全抽出时间!)。一个明显的 GOTHCA - 不要对仪器功能进行仪器仪表!!!

http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Code-Gen-Options.html

关于c - C 程序中 printf()/fprintf() 输出的调试字符串的缩进(和换行缩进),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4633142/

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