• sugar
    2022-01-03
    请教于航老师一个问题,我的日常开发程序语言主要是JavaScript和C/C++,这个技术栈与老师应该比较类似。在js中,我们在运行时console.log可以打出任何一个代码中可见的变量的具体值,无论它是一个number、string这样的简单类型,还是各种类嵌套定义出的超级复杂的数据结构,这个能力在阅读其他人写的代码时很有帮助:我不确定一段程序中的某个符号代表的对象究竟是什么结构的时候,我可以直接去运行时把它log出来,尤其是项目代码量庞大的时候这能省去大量人肉读代码的时间;但是在c/c++当中,据我目前所知似乎只能cout 或者 printf出一个基本类型,比如int double char等,不能像js那样轻松的console.log出任何type的变量完整结构。请问于航老师在面对这种情况时是怎么处理?是否只能人肉一个一个class definition去翻代码?c的一些三方库只能翻到.h文件,翻不到具体实现.c或者.cpp文件。

    作者回复: 可以试试 Visual Studio Code?我之前的 C++ 项目在 VSC 里单步调试的时候就可以直接 inspect 对应变量的内容(包括各类 STL 容器)。

    共 3 条评论
    2
  • 火云邪神霸绝天下
    2022-01-19
    #include <stdio.h> void foo(void) { int x; printf("%d\n", x); x = 10; } int main(void) { foo(); foo(); return 0; } 这个代码两次输出都是0。不太明白它说清楚了什么。 本来不就该是 0 吗? 函数执行一次就栈内空间回收了吧。下次执行下次说。

    作者回复: 试着在 “-O0” 下编译,再看看执行结果呢?

    
    1
  • TableBear
    2022-08-09 来自广东
    专属的微信群是哪个?还能进去吗

    作者回复: @极客时间 小编,帮忙拉一下?

    
    
  • 青鸟飞鱼
    2022-01-12
    我觉得老师可以请大佬来讲讲c语言在redis应用哈哈,有了nginx,怎么能少了redis

    作者回复: 好的,我帮你问问看哈哈哈。

    
    
  • ZR2021
    2022-01-01
    老师强大!!!
    
    1
  • Fan
    2021-12-31
    Good
    
    1