一些简单的编译原理+混编

1  C++包含头文件中<>和""的区别

#include “book.h”

#include<iostream.h>
在刚开始学习都会有这种迷惑,有的程序用<>,有的却用"",那么二者到底什么区别呢,什么情况下使用呢?
<>和""表示编译器在搜索头文件时的顺序不同,<>表示从系统目录下开始搜索,然后再搜索PATH环境变量所列出的目录,不搜索当前目录,""是表示从当前目录开始搜索,然后是系统目录和PATH环境变量所列出的目录。
所以,系统头文件一般用<>,用户自己定义的则可以使用"",加快搜索速度。

2   编译器的工作过程: 头文件包含顺序#include""

对于大型项目来说,源码文件之间往往存在依赖关系,编译器需要确定编译的先后顺序。假定A文件依赖于B文件,编译器应该保证做到下面两点。

(1)只有在B文件编译完成后,才开始编译A文件。(A头文件就得放那个B下面了)

(2)当B文件发生变化时,A文件会被重新编译。

 

 

------------------------------------------------------------------------

1:  
A.h         A.cpp
B.h         B.cpp
1:  如果 A.cpp中定义B.h ; B.cpp中定义A.h  不叫相互包含;
编译时: 编译到A.cpp 时, 去找B.h 结束, 在编译到B.cpp时。。。。  不会出现循环引用


一般原则: 

a. 头文件中尽量少 include, 如果可以简单申明 class clsOld; 解决,那最好。减少没有必要的 include;

b: 把包含的头文件放在.cpp中

  clsOld m_Objold; // 不知道占据大小,必须要通过它的具体声明来计算 , clsOld * m_pOld;    // 指针占 4 个字节长 

类中尽量采用指针或引用方式调用其它类,这样就可以只声明 class xxx 了。并且这也符合资源最优 利用,更利于使用多态。

#ifdef 条件编译就是在满足条件情况下, 才回去编译




3:编译过成: 编译   链接(.o  dill/)   链接






4: .hpp   是: 定义和实现的混合,写在同一个文件中, zhu: .h中不能一般有实现 如int a = 3; 报错误
 

*********例子 :



5:  RenderTexture 搞了 1.5小时, 又高了1小时多: 坐在 异步

所谓:异步, 他是在下一帧时, 才会生成截图, 在当前帧中还没有生成
    //    return  FileUtils::getInstance()->getWritablePath()+ "screen.png"; //_text
    Sprite *_Bg =  Sprite::createWithTexture(tex->getSprite()->getTexture());
 所以——B股== nullptr


6:  这个是显示的编译顺序


7:  

从Cocos2d-x学习OpenGL -- Cocos2d-x渲染结构

:具体回执顺序看Z值
搜函数时 :   jiag  ::draw()/mainLoop()


---------------------------2015年5月23
1:
session概述

session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。

当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为session id,如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。 保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发回给服务器。一般这个cookie的名字都是类似于SEEESIONID,而。比如weblogic对于web应用程序生成的cookie,JSESSIONID=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764,它的名字就是JSESSIONID。

session,简而言之就是在服务器上保存用户操作的历史信息。服务器使用session id来标识session,session id由服务器负责产生,保证随机性与唯一性,相当于一个随机密钥,避免在握手或传输中暴露用户真实密码。但该方式下,仍然需要将发送请求的客户端与session进行对应,所以可以借助cookie机制来获取客户端的标识(即session id),也可以通过GET方式将id提交给服务器。

2:

  散列表(也叫哈希表)是一种查找算法,与链表、树等算法不同的是,散列表算法在查找时不需要进行一系列和关键字(关键字是数据元素中某个数据项的值,用以标识一个数据元素)的比较操作。

    散列表算法希望能尽量做到不经过任何比较,通过一次存取就能得到所查找的数据元素,因而必须要在数据元素的存储位置和它的关键字(可用key表示)之间建立一个确定的对应关系,使每个关键字和散列表中一个唯一的存储位置相对应。因此在查找时,只要根据这个对应关系找到给定关键字在散列表中的位置即可。这种对应关系被称为散列函数(可用h(key)表示)。

    根据设定的散列函数h(key)和处理冲突的方法将一组关键字key映像到一个有限的连续的地址区间上,并以关键字在地址区间中的像作为数据元素在表中的存储位置,这种表便被称为散列表,这一映像过程称为散列,所得存储位置称为散列地址。

-----------------------------------------------



楼上的 稿云服务器的  为大电商(京东。。),叫公司买        对面有一个  "fei yu" 小米投了几千万


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值