多歧路,今安在?

好久没写博客了,翻看自己的博客,上次更新已是半年多前了,这大半年来忙于找工作,毕业设计,毕业答辩、入职……入职前两个月也是各种忙碌,现在对手头的工作也熟悉一些了,于是乎在低头做事的空暇时也需要抬起头来看看路了。

SSH反向穿透访问内网主机

学校的网络位于无数重NAT内网中,而且还有各种VPN,所以想要从外网访问十分困难,之前试过各种方法都没成功。今天偶然看到了SSH反向穿透的方法,因为我访问内网服务器主要也是需要SSH连接功能,故此方法可以很好的满足我的需求。此处记录下配置方法。

深入理解C语言中宏定义

从本质上看,C语言中的宏定义实现的是一个文本替换的功能,似乎很简单的样子,然而这几天去看了下Linux Kernel源码中的各种宏定义,才发现一个宏定义竟然也可以有如此多的奇技淫巧……于是花了一天时间仔细研究了下宏的相关知识,此处整理总结下。

C语言中的字符串字面量连接

字符串字面量(string literal)就是程序代码中出现的"包围的字符串,比如"hello", "I Love C Language!"这类的。在C语言中,有一个奇技淫巧:两个相邻的字符串字面量会自动被合并连接为一个。这里的相邻可以是直接连在一起,也可以是间隔着若干个空白字符。需要指出的是,这个特性是C语言标准所要求的,并不是某个编译器的扩展功能。

一个例子:

1
printf("Hello" " World""!"    "\n");

以上代码完全等同于:

1
printf("Hello World!\n");

参考资料:
How does concatenation of two string literals work?