首页 > 代码库 > Makefile && GDB
Makefile && GDB
昨天学习了C++内存空间一章,看了TCP/IP第一卷第一章,最后看了《Linux网络编程》里的Makefile和gdb部分。现在靠回忆补上一篇博客。
一:C++有三种内存存储模式(C++11有4种,多了“线程存储”)
1.自动变量
a.auto声明变量的方式已被取消,register方式仍然保持
b.自动变量的生存周期就是定义的位置到括号结束的位置
2.静态变量
a.有三种静态变量:链接性为外部,链接性为内部,没有链接性。
b.三种对应定义方式为:定义在函数外面;定义在函数外面并加上static限定词;定义在函数内部并加上static限定词。
c.共同性:生命周期和函数无关,程序运行期间一直存在。只被初始化一次,以后不再初始化(不是不再被赋值)
d.差别:链接性为外部的,作用域为所有文件,所以,其它文件不能定义相同变量,只能声明使用:extern 类型 变量。如果extern 类型 变量 = 3;等同于定义,是错误的。或者只能在外部使用static修饰同名变量,以覆盖外部同名变量。链接性为内部的,作用域为文件,外部不可用extern声明使用。
3.自由空间变量或堆
还没看。今天看后总结。
Tcp/Ip:
1.OSI 不记得
2.IP分类法:记得方法为:
A 0+网络号+主机号
B 10+网络号+主机号
C
D
E
Makefile:
1.make时首先执行Makefile第一条规则!
2.其它规则可以使用make + TARGET执行
3.命令以Tab键开始
4.一行写不满,使用反斜杠:‘\’
5.规则定义:
TARGET:DEPENDENTS(1) DEPENDENTS(2)
GCC TARGET -o OBJ
6.%o:%c 将以o结尾的文件换成c结尾的(记得有问题)
7.$@目标文件 $^依赖项以空格分开 $<依赖项第一位
8.VPATH=path:path 将搜索目录添加进来
9.能定义变量 OBJ=main.o sub.o
10.等递归调用make
gdb:
ptype:打印变量类型和整个结构
info thread:打印线程
thread id:进入线程
whatis:打印变量类型
因为我现在觉得学习最重要的不是看了多少东西,而是记住了多少东西,最后是能用上多少东西。我现在看书基本是看一遍后就已经做好全部忘记的准备,所有的东西都准备花上时间重新看3遍以上,上不封顶。
Makefile && GDB