摘要:
extern有两层含义:表示声明和extern C1、C++分为编译期和运行期,C++是分别单独编译,编译期可认为有三个步骤:a、预编译进行文本替换,将源文件(cpp文件)生成编译单元;b、编译单元经过编译生成目标文件(obj文件);c、所有目标文件连接生成库(dll文件)或者可执行文件(exe文件)。2、在每个编译单元中,要使用一个对象,有两种方式: a、在当前把它定义出来 b、告诉编译器,我有这个东西,但是它被定义在其他的编译单元,等到连接时找到它。这就是extern的第一个用法。3、extern修饰对象,说明只是声明,对象定义在其他地方,连接的时候找到他。可以编译通过,但是,你引用的.. 阅读全文
摘要:
1、变量有三个基本要素:类型,名称,值。除了这三个要素,还包括其他内容:存储类型,作用域范围,连接类型(可见性),生存期。2、以方法为例说明,方法的类型就是去掉方法名,包括返回类型和形参表,如void (int)。名称就是方法名,方法名表示方法体代码在内存中的地址,在编译时就确定其值,因此是一个常量,这就是方法的值。方法的存储类型默认为extern,只是声明。作用域范围就是文件作用域,连接类型为extern,除非声明为static,为内链接。生存期为永久,从程序运行到程序终止。 阅读全文
摘要:
1、C++的内存管理可分为以下几个部分: 栈:记录程序的执行过程。 堆:采用new,delete申请释放内存。 自由存储区:对应于C中使用malloc,free申请释放内存。 全局存储区:也叫静态存储区,存储static对象,包括全局对象,命名空间内对象,文件作用域内的static对象,类中的static对象,方法内的static对象。 常量存储区:存放文本常量。2、对于32位系统,堆可用大小为为4G,对于一般程序,可认为无限大。栈可用大小为1M,也可以人为修改。3、 1Byte = 8Bit 1Word = 2Byte 1K = 1024Byte 1M = 1024K 1G... 阅读全文
摘要:
1、TCP通信是可靠的,UDP通信是不可靠的。TCP是怎么保证通信可靠的呢?2、实际项目中,用到串口通信,也要保证通信可靠,TCP的道理应该也是一样的。3、通信之前,三次握手。可以这样认为:a、甲问乙一个问题;b、乙回答甲的问题,同时问甲一个问题;c、甲再回答乙的问题。这样证明二者连接正常了,可以进行数据传输了。4、通信是可靠的,也就是说,甲如何确认乙收到了自己发的信息? 甲乙通信的信息中有两个字段,SendNum和AckNum,SendNum表示向对方问第几个问题,AckNum表示收到了对方的问题,回答对方第几个问题。注意:这种回答方式很特殊,别人问什么,我就把问题重复一边作为回答。5、甲. 阅读全文