自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TTc 's share

focus

  • 博客(25)
  • 资源 (8)
  • 收藏
  • 关注

转载 Objective-C runtime之消息转发机制(三)

学了那么久的Objective-C,给我的感觉就是它什么都是动态的,你将会听到一个新的名词:一、动态方法解析1、+(BOOL) resolveInstanceMethod:(SEL) sel这是NSObject根类提供的类方法,调用时机为当被调用的方法实现部分没有找到,而消息转发机制启动之前的这个中间时刻。2、@dynamic关键字Objective-C2.

2014-12-31 17:16:03 559

转载 Objective-C runtime之消息(二)

今天开始说说runtime system中最关键的消息相关内容。一、runtime中的消息1、什么是消息进入今天的正题之前,先来说说跟message息息相关的几个概念①message(消息)message的具体定义很难说,因为并没有真正的代码描述,简单的讲message 是一种抽象,包括了函数名+参数列表,他并没有实际的实体存在。②method(方法)metho

2014-12-31 17:11:31 386

转载 Objective-C runtime之运行时的基本特点(一)

作为一门动态编程语言,Objective-C 会尽可能的将编译和链接时要做的事情推迟到运行时。只要有可能,Objective-C 总是使用动态 的方式来解决问题。这意味着 Objective-C 语言不仅需要一个编译环境,同时也需要一个运行时系统来执行编译好的代码。运行时系统(runtime)扮演的角色类似于 Objective-C 语言的操作系统,Objective-C 基于该系统来工作。因

2014-12-31 17:10:46 405

转载 Objective-C通过联合存储为类增加属性及原理解析

动态语言的最大好处,就是灵活性,对于Objective-C来说,能在运行时动态地为类增加方法和实例变量是很多其它语言羡慕不已的能力。现在说说为类增加实例变量用到的技术:联合存储。一、联合存储的实现方式下面这段代码实现了为Duck类增加color属性:Duck+associative.h文件[cpp] view plaincopy

2014-12-31 17:08:42 386

转载 c语言的灵魂——指针

大家都认为,c语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是c语言的灵魂,一点都不为过。那么加强对指针的认识和理解,是提高C语言水平很关键的一部分。下面是一些指针总结,希望能够抛砖引玉大家相互交流相互学习。1. 指针是什么? 指针,是一个无符号整数(unsigned int),它是一个以当前系统寻址范围为取值范围的整数。32位系统下寻址能力(地址空间)是4G

2014-12-31 13:06:22 969

原创 开源项目

代码阅读——十个C开源项目1. Webbench2. CMockery3. Libev4. Memcached5. Lua6. SQLite7. Redis8. Nginx9. UNIXv610. NETBSD代码阅读——十个C开源项目1. WebbenchWebbench是一个在linux下使用的非常简单的网

2014-12-30 14:58:25 466

原创 下层对上层透明是什么意思?

你会发现,有些词语很奇怪。在计算机网络中,你肯定听说过下层对上层透明,啥意思? 这里透明的意思不是看得见,而是看不见。写个程序,你就清楚了:[cpp] view plaincopy#include     int main()  {      printf("%d\n", sizeof("abcdefg"));      retu

2014-12-30 13:02:37 1580 1

原创 缓冲区是什么?

缓冲区, 说白了, 就是一个中介。 比如你要租一个房子, 刚好房子的主人也要出租房子, 你们可以直接联系, 但问题就在于: 房子的主人可能没有时间和你扯太多, 你也没有时间和房子的主人扯这扯那, 这个时候, 中介产生了。 中介有时间和你扯皮, 中介和房子的主人也提前沟通好。        在上面的例子里, 你通过中介一次性把信息反馈给房子主人, 房子主人把自己的要求通过中介一次性给你。 本

2014-12-30 12:56:59 947

转载 C 中的main函数的参数详解

我们经常看到main函数不带参数。因此main后都是空括号。C代码  main()  {  ...  }  实际上,main函数必须带参数,这个参数可以认为是main函数的形式参数。C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为:C代码  

2014-12-29 10:12:29 684

原创 Lua 阅读源代码的次序

Lua 的源代码有着良好的设计,优美易读。其整体篇幅不大,仅两万行 代码左右。但一开始入手阅 读还是有些许难度的。从易到难,理清作者编写代码的脉络非常重要。LuaJIT 的作者 在回答“哪一个开源代码项目 设计优美,值得阅读不容错过”这个问题时,推荐了一个阅读次序:首先、阅读外围的库是如何实现功能扩展的,这样可以熟悉 LUA公开 API 。不必陷入功能细节。然后、阅读 API 的具体实

2014-12-26 11:13:52 1489

原创 lua5.2 带你理解_ENV和_G

5.1之前, 全局变量存储在_G这个table中, 这样的操作:a = 1 相当于:_G['a'] = 1但在5.2之后, 引入了_ENV叫做环境,与_G全局变量表产生了一些混淆,需要从原理上做一个理解。在5.2中, 操作a = 1相当于_ENV['a'] = 1这是一个最基础的认知改变,其次要格外注意_ENV不是全局变量,而是一个upvalue(非局部变量

2014-12-25 13:39:21 1743

转载 C语言中闭包的探究及比较

这是一篇技术分享,并且之前发表在酷壳上,http://coolshell.cn/articles/8309.html,现在发布到自己的博客上。下文是直接从酷客复制过来的,这里偷了个懒,没有再次对格式做很仔细的整理,只有稍微整理。汗。这里主要讨论的是C语言的扩展特性block。该特性是Apple为C、C++、Objective-C增加的扩展,让这些语言可以用类Lamb

2014-12-25 13:22:45 528

转载 快感来的太容易,剩下的就是空虚。

不单单是游戏,世间的事,多是如此,赞来的太多,就不会在意,钱来的太快,就不会珍惜。空虚不是因为无用,无用的东西很多,有收集模型的,有收集古董的,有转魔方的,有读小说的,不见得都有用。偶然淘到了一个茶壶,或是凑齐了整套的模型,爱好者们莫不是欣喜若狂,奔走相告。即使有一天,热情退了,也不会有空虚之感,有的只是淡然。因为这样的快乐,来之不易。有用的东西,来的太易,也会空虚。富人觉得钱没有

2014-12-24 23:07:07 807

原创 Lua5.2改动

第三方cmodule,如使用luaL_register需要改为 luaL_newlib。如lfs库luaL_register (L, "lfs", fslib) 改为luaL_newlib(L,fslib);。这里本来第二个参数是表明,非nil是把所有接口放到一个全局变量table中,nil就是所有接口都是全局函数。现在是强制取消全局接口了。所有第三方库没有gloable的函数了,所以使用时都

2014-12-23 14:35:54 664

原创 Lua和C交互——C API

C和Lua交互的部分称为C API。C API是一个C代码与Lua进行交互的函数集。他由以下部分组成:读写Lua全局变量的函数、调用Lua函数的函数、运行Lua代码片断的函数、注册C函数然后可以在Lua中被调用的函数,等等。  API中有些函数为了方便以宏的方式实现。  当在Lua和C之间交换数据时我们面临着两个问题:动态与静态类型系统的不匹配和自动与手动内存管理的不一致。解决办法

2014-12-22 15:07:14 580

原创 Lua关键字

Lua关键字  22个1. 逻辑 关键字   and , or, not2.  基本类型   function, table,nil, 3. for , while , do , break,   in ,return  , until , goto ,repeat4. true ,false5.if , then , else   , elseif6. local

2014-12-19 13:01:36 4991

原创 学习Lua

决定开始使用 Linux + C  +lua的组合 Lua的优点:快,小,轻(少)        小:~200k二进制库  ~20k  C代码行少:简单   关键字  C++ 82 , python 33,  C 32 , Go 25, Lua 22        APi:  C 79个                 VM指令  30个内建coroutine 协程

2014-12-19 09:53:33 490

转载 协议森林03 IP

网络层(networklayer)是实现互联网的最重要的一层。正是在网络层面上,各个局域网根据IP协议相互连接,最终构成覆盖全球的Internet。更高层的协议,无论是TCP还是UDP,必须通过网络层的IP数据包(datagram)来传递信息。操作系统也会提供该层的socket,从而允许用户直接操作IP包。IP数据包是符合IP协议的信息(也就是0/1序列),我们后面简称IP数据包为IP包。I

2014-12-14 01:30:31 486

转载 协议森林02 广播

“小喇叭开始广播啦”,如果你知道这个,你一定是老一辈的人。“小喇叭”是五十年代到八十年代的儿童广播节目。在节目一开始,都会有一段这样的播音:“小朋友,小喇叭开始广播了!”听到这里,收音机前的小朋友就兴奋起来,准备好听节目了:这一期的内容是以太网(Ethernet)协议与WiFi。 我们在邮差与邮局中说到,以太网和WiFi是连接层的两种协议。在连接层,信息以帧(frame)为单位传输。帧像

2014-12-14 01:30:29 601

转载 协议森林01 邮差与邮局(protocol)

出处:http://www.cnblogs.com/vamei 信号的传输总要符合一定的协议(protocol)。比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号。这样一个“狼烟=敌人入侵”就是一个简单的协议。协议可以更复杂,比如摩尔斯码(MorseCode),使用短信号和长信号的组合,来代表不同的英文字母。比如SOS(***---***,

2014-12-14 01:30:26 749

原创 (理解)ORM对象-关系映射

对象-关系映射(Object/RelationMapping,简称ORM),是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接

2014-12-14 01:30:18 1122

原创 AOP面向切面编程(个人理解)

面向切面编程的目标就是分离关注点。什么是关注点呢,就是你要做的事,就是关注点。假如你是个公子哥,没啥人生目标,天天就是衣来伸手,饭来张口,整天只知道玩一件事!那么,每天你一睁眼,就光想着吃完饭就去玩(你必须要做的事),但是在玩之前,你还需要穿衣服、穿鞋子、叠好被子、做饭等等等等事情,这些事情就是你的关注点,但是你只想吃饭然后玩,那么怎么办呢?这些事情通通交给别人去干。在你走到饭桌之前,有一个专门的

2014-12-14 01:30:03 611

原创 IOC依赖倒置(个人理解)

所谓依赖,从程序的角度看,就是比如A要调用B的方法,那么A就依赖于B,反正A要用到B,则A依赖于B。所谓倒置,你必须理解如果不倒置,会怎么着,因为A必须要有B,才可以调用B,如果不倒置,意思就是A主动获取B的实例:B b = new B(),这就是最简单的获取B实例的方法(当然还有各种设计模式可以帮助你去获得B的实例,比如工厂、Locator等等),然后你就可以调用b对象了。所以,不倒

2014-12-14 01:30:00 561

原创 Lua学习笔记:面向对象

Lua 中只存在表(Table)这么唯一一种数据结构,但依旧可以玩出面向对象的概念。添加成员函数好吧,如果熟悉 C++ 还是很好理解类似的进化过程的:如果说 struct 里可以添加函数是从C 过渡到 C++ 的第一认识的话,为 Table 添加函数也可以算是认识 Lua 是如何面向对象的第一步吧。player = { health = 200 } --> 一个普通的 playe

2014-12-14 01:28:56 552

原创 常用排序算法

选择排序 Selection sort每次从尚未排好的数组范围里选出一个最小的放到正确的位置。void selection_sort(int array[], int size){ int lhs, rhs; int min; for (lhs = 0; lhs < size - 1; lhs++) { min = lhs; f

2014-12-14 01:28:54 594

pthread源代码

posix linux环境下的pthread source 通过查看源代码可以对线程的认识更加深刻 你知道吗?线程的底层实现也是调用clone[创建进程] 故有线程是轻量级的进程

2015-05-15

西蒙教程13章

西蒙教程全部13章中文教程下载,全部13章哦,opengles入门从这开始哦

2012-09-16

西蒙教程源代码(全部17章)

西蒙教程的17章全部源代码,全部的17章阿

2012-09-16

C++设计模式

设计模式精解-GoF 23 种设计模式解析附 C++实现源码

2012-09-06

cocos2d _切水果

COCOS2D_IPHONE 切水果实例, 游戏

2012-09-06

ios翻页特效demo

一种IOS 翻页特效demo,折页效果,3d翻页效果

2012-08-14

fbreader 电子阅读

android系统下的一款开源阅读器代码,支持EPUB,TXT,UMD,FB2文件格式

2012-08-14

EPUB 解析 (java)

java实现的EPUB 解析模块,从开源项目FBreader中优化出来的模块代码

2012-08-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除