不知道你有没有看到过scanf下面这样的用法:1
2
3
4
5
6
7
8
9
10// 来源:公众号【编程珠玑】
// 作者:守望先生
int main(void)
{
char a[128] = {0};
scanf("%[0-9]",a);
printf("%s\n",a);
return 0;
}
上面的代码什么意思呢?试一下几个输入输出:
之前在《PIMPL-隐藏接口实现细节》中介绍了一种隐藏类的私有成员的方法,或者说隐藏接口实现细节的方法-PIMPL。
假设提供的接口的入参比较复杂,可能有人会考虑使用结构体作为入参。当你考虑这么做的时候,灾难也将会随之而来……
const变量能被其他文件extern引用吗?为什么?
先来看一段代码:
1 | // 来源:公众号编程珠玑 |
编译链接:
1 | $ g++ -o main main.cc const.cc |
我们发现出现了链接问题,说const_int没有定义的引用,但我们确实在const.cc文件中定义了。
我们去掉const修饰符再编译一次,发现是可以的。从上面这个编译问题,就引出今天要讲的内容了。至于为什么会编译不过,最后再做解释。
当然你会发现,按照C代码去编译,是可以编译出来的。后面再解释。
之前在《如何让程序真正地后台运行》一文中提到了程序后台运行的写法,但是里面的示例程序在某些场景下是会有问题的,这里先不说什么问题,我们先看看这个磁盘满的问题是怎么产生的,通过这篇文章你将会学习到大量linux命令的实操使用。
作为Linux下的C/C++开发者,没接触过makefile一定说不过去,通常构建大型的C/C++项目都离不开makefile,也许你使用的是cmake或者其他类似的工具,但它们的本质都是类似的。
作为一个轻度使用者,应读者要求,斗胆介绍一下makefile,不过与普通的makfile教程不同的是,本文准备从另外一个角度来介绍。如有不妥之处,欢迎指出。