Understanding the `extern` keyword in C language

Introduction Almost every programmer knowns C language since it's usually the first programming language they learned. However, C is very hard to gain a deeper understanding because of its low-level property. In this article, we will focus on the extern keyword and find out its essence. Before we explain extern…

C 语言中的元素指针与一维数组指针

在我上大三的时候,有段时间发现自己对指针的理解不够深入,所以就看了《Pointers On C》这本书的指针章节,当时印象很深刻的是接触到了一维数组指针这个概念,5月19号我在看内核代码时又遇到了这个问题,结果一时间竟然没看懂,搜了资料才想起来这么个概念。 举个例子: #include<stdio.h> void main() { int boot_gdt[] = {1,2,3}; int *a = boot_gdt; int *b = &boot_gdt; printf("%x\n",a); printf("%x\n",b); } 两个输出语句会输出同样的结果,一开始我大为不解,然后 Google…

宇宙最强调试器DDD(Data Display Debugger)

Linux主流调试器是gdb,但它是纯命令行界面的,调试起来不方便,我需要更强大的力量。在试用了各种工具之后,我相信我找到了,是的没错,就是它——宇宙最强调试器——DDD。 DDD介绍 DDD全称Data Display Debugger,当我第一次见到它时,它的界面着实让我吃了一惊,如此的简陋,如此的怪异,我甚至想立刻删了它,但是当我见识到它强大的功能时,我被深深的震撼了,如此的飘逸,如此的不羁,我的脑海中突然想到了一个词来形容它——犀利! 没错,就是这么犀利,它是gdb的最优图形化前端,它继承了gdb的所有功能,它还加入了数据结构可视化能力,什么一维二维栈数组,二叉三叉N叉树,DDD统统都能用图形显示出来。 小伙子,你还在为调试犯愁么,你还在为红黑树写了半天就是不对而沮丧么,如果你真的遇到了这样的问题,那么我想DDD一定适合你。 它含蓄深沉,它隽永内敛,它在百度上搜不到多少资料,它就是这么低调,这么孤寂,它等待着你去发现,去使用,去震撼这个世界,去拿起它的锋芒——傲视群雄! DDD安装 嗯,…