动态内存分配堆内存分配与释放C/C++定义了四个内存区间:代码区,全局变量与静态变量区,局部变量区(栈区),动态内存区(堆区)通常定义变量(或对象),编译器在编译时都可以根据该变量(或对象)的类型知道所需内存空间的大小,从而系统在适当的时候为他们分配确定的存储空间。这种内存分配称为静态存储分配。有些...
分类:
其他好文 时间:
2014-06-29 15:33:25
阅读次数:
246
DLL相关的东西1、DLL的加载方式隐式:#pragma comment(lib,
"XX.lib");编译器去查找名为XX.dll的DLL,除了名字相同,该DLL和该LIB的GUID也相同。显式:HINSTANCE hInst =
LoadLibrary(TEXT("XX.dll"));if(N....
DLL中导出函数的声明有两种方式:一种为在函数声明中加上__declspec(dllexport),这里不再举例说明;另外一种方式是采用模块定义(.def)
文件声明,.def文件为链接器提供了有关被链接程序的导出、属性及其他方面的信息。 首先创建 一个DLL程序,.cpp中int __stdcal...
分类:
其他好文 时间:
2014-06-07 05:09:21
阅读次数:
185
oc是一门全动态语言,oc的一切都是基于runtime实现的。
为了能正确理解runtime,我们首先来由其他的语言引出动态的oc。
1.传统的面相过程的语言开发,例如c语言,编译器做到的是:把一份代码里的函数名称,转化为一个相对的内存地址,把调用这个函数的语句转换成一个jmp跳转指令,在...
分类:
其他好文 时间:
2014-06-07 03:48:20
阅读次数:
1000
【尾递归】
如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。尾递归函数的特点是在回归过程中不用做任何操作,这个特性很重要,因为大多数现代的编译器会利用这种特点自动生成....
分类:
其他好文 时间:
2014-05-28 21:50:46
阅读次数:
367
前不久在C++板块请教过这样一个问题:“多个基类中相同的纯虚函数,只需在派生类中实现一次”是否是标准行为。这个问题直到现在我也还没能确定,不过我在VC2005、VC2008和g++上都试过,该特性在所有这些编译器上都可以正常工作,所以应该八九不离十了。另外,记得当时星星有“语法正确逻辑说不过去”一....
分类:
其他好文 时间:
2014-05-28 20:19:02
阅读次数:
354
/*设计一个函数,找出整型数组元素的最大值*/#includeintmaxOfArray(intarray[],intlength){//数组当做函数参数传递时,会当做指针变量来使用,指针变量在64bit编译器环境下,占据8个字节//intsize=sizeof(array);//printf("a...
分类:
其他好文 时间:
2014-05-28 16:32:39
阅读次数:
223
随着红色大写的STOPED在屏幕上显示,宣告陕西邀请赛打铁而归!心里无数的不干,着实难过……
这次比赛bug太多,低级错误不断,花了许多时间。第一题最简单题,写了程序,运行异常退出。总是以为自己程序问题,改了N种版本,最后队友关掉重建一个项目,才a掉第一题。竟然在编译器上出问题,Codebl...
分类:
其他好文 时间:
2014-05-28 15:20:02
阅读次数:
176
?使用字典的坏处?一般情况下,设置数据和取出数据都使用“字符串类型的key”,编写这些key时,编译器不会有任何友善提示,需要手敲dict[@"name"]
= @"Jack";NSString *name = dict[@"name"];?手敲字符串key,key容易写错?Key如果写错了,编译器...
分类:
其他好文 时间:
2014-05-28 14:35:28
阅读次数:
227
?instancetype在类型表示上,跟id一样,可以表示任何对象类型?instancetype只能用在返回值类型上,不能像id一样用在参数类型上?instancetype比id多一个好处:编译器会检测instancetype的真实类型
分类:
其他好文 时间:
2014-05-28 09:04:31
阅读次数:
145