自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 资源 (1)
  • 收藏
  • 关注

原创 oc对象isa分析

首先看一下isa的初始化inline void objc_object::initIsa(Class cls, bool nonpointer, bool hasCxxDtor) { ASSERT(!isTaggedPointer()); if (!nonpointer) { isa = isa_t((uintptr_t)cls); } else { ASSERT(!DisableNonpointerIsa); AS

2020-09-11 17:35:24 161

原创 内存对齐原理

内存对齐的原则:数据成员对⻬规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小或者成员的子成员大小(只要该成员有子成员,比如说是数组,结构体等)的整数倍开始(比如int为4字节,则要从4的整数倍地址开始存储。结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其内部最大元素大小的整数倍地址开始存储.(struct a里存有struct b,b里有char,int ,double等元

2020-09-11 16:18:06 179

原创 objective-c alloc分析

一个简单的例子先定义一个继承于NSObject的对象Test@interface Test : NSObject@end运行 Test *t0 = [Test alloc]; Test *t1 = [t0 init]; Test *t2 = [t0 init]; NSLog(@"%@ -- %p -- %p",t0,t0,&t0); NSLog(@"%@ -- %p -- %p",t1,t1,&t1); NSLog(@"%@ -

2020-09-05 14:43:37 251

原创 iOS离屏渲染

设置了cornerRadius和layer.masksToBounds为true是触发离屏渲染的条件,但不是所有情况下都会触发离屏渲染的。查看离屏渲染1.情况一:设置cornerRadius、backgroundColor,没有触发离屏渲染 UIView *view = [[UIView alloc]init]; view.frame = CGRectMake(100, 100, 100, 100); [self.view addSubview:view]; view.

2020-07-14 17:16:36 363

原创 绘制正方形并进行移动

绘制基础图形并进行移动准备工作初始化正方形的数据实现回调函数准备工作第一步,在main函数中初始化OpenGL并注册回调函数 //用来设置当前工作目录 gltSetWorkingDirectory(argv[0]); //初始化GLUT库 glutInit(&argc, argv); /* 初始化双缓冲窗口,其中标志GLUT_DOUBLE、GLUT_RGBA、GLUT_DEPTH、GLUT_STENCIL分别指 双缓冲窗口

2020-07-09 15:06:55 480

原创 OpenGL名词解析

OpenGL名词解析OpenGL 上下⽂(context)在应用程序调用任何OpenGL的指令之前,需要安排首先创建一个OpenGL的 上下⽂。这个上下文是一个⾮常庞大的状态机,保存了OpenGL中的各种状态,这也是OpenGL指令执⾏的基础OpenGL的函数不管在哪个语言中,都是类似C语⾔⼀样的⾯向过程的函数,本质上都是对OpenGL上下文这个庞大的状态机中的某个状态或者对象 进行操作,当然你得首先把这个对象设置为当前对象。因此,通过对 OpenGL指令的封装,是可以将OpenGL的相关调⽤封

2020-07-09 14:15:37 174

c学生成绩管理系统

本程序简单易懂,能为初学c的同学解决问题提供思路

2015-04-05

空空如也

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

TA关注的人

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