線程和進(jìn)程的定義 線程是進(jìn)程的基本執(zhí)行單元,一個(gè)進(jìn)程的所有任務(wù)都在線程中執(zhí)行進(jìn)程要想執(zhí)行任務(wù),必須得有線程,進(jìn)程至少要有一條線程程序啟動(dòng)默認(rèn)會(huì)開(kāi)啟一條線程,這條線程被稱(chēng)為主線...
總結(jié) 普通指針是值拷貝對(duì)象指針是二級(jí)指針數(shù)組指針指向的是數(shù)組的首地址,也是數(shù)組的第一個(gè)元素的地址數(shù)組的內(nèi)存平移實(shí)際是在數(shù)組的首地址的基礎(chǔ)上加數(shù)組內(nèi)元素類(lèi)型的大小即步長(zhǎng) 問(wèn)題 ...
通過(guò)x/4gx YDPerson.class 發(fā)現(xiàn)類(lèi)也是有數(shù)據(jù)結(jié)構(gòu)有內(nèi)存對(duì)象的內(nèi)存里會(huì)存儲(chǔ)很多的值像isa、成員變量,那么類(lèi)會(huì)存儲(chǔ)些什么?YDPerson是一個(gè)類(lèi),而類(lèi)在底層...
通過(guò)isa分析到元類(lèi)我們有了對(duì)象的isa指向類(lèi),類(lèi)的isa指向元類(lèi)的走位,那元類(lèi)的isa呢? 通過(guò)案例測(cè)試發(fā)現(xiàn)YDPerson對(duì)象的isa指向了類(lèi),類(lèi)的isa指向元類(lèi),元類(lèi)的...
通過(guò)isa推導(dǎo)class我們分析類(lèi)isa存儲(chǔ)了類(lèi)信息,我們是否可以對(duì)Class的地址再取isa的操作呢? 通過(guò)案例我們發(fā)現(xiàn)對(duì)isa的地址再進(jìn)行x/4gx時(shí)也可以獲取到里面的地...
通過(guò)案例驗(yàn)證了類(lèi)和對(duì)象進(jìn)行關(guān)聯(lián)是通過(guò)isa來(lái)進(jìn)行的,在案例中對(duì)isa取ISA_MASK就可以得出類(lèi)的地址,由于isa默認(rèn)是nonPointerIsa,而非純的isa指針數(shù)據(jù)是...
通過(guò)案例可得出結(jié)構(gòu)體struct1在存儲(chǔ)布爾類(lèi)型的4個(gè)成員變量時(shí)需要用到4個(gè)字節(jié)即32位,而這里的每一個(gè)成員變量均可用0或1來(lái)代理,那么在成員變量后添加位域指定變量占用的位數(shù)...
在malloc的篇章里我們知道了calloc后系統(tǒng)根據(jù)實(shí)例變量的大小進(jìn)行16字節(jié)對(duì)齊后返回了一個(gè)創(chuàng)建對(duì)象所需大小的內(nèi)存地址,并在alloc底層源碼的最后賦值給了obj,而ob...
首先要了解一下clangClang 是一個(gè)C語(yǔ)言、C++、Objective-C語(yǔ)言的輕量級(jí)編譯器。源代碼發(fā)布于BSD協(xié)議下。Clang將支持其普通lambda表達(dá)式、返回類(lèi)...
進(jìn)入到malloc_size的實(shí)現(xiàn),發(fā)現(xiàn)只有malloc.h文件中對(duì)malloc_size的聲明找不到實(shí)現(xiàn),但可以發(fā)現(xiàn)這個(gè)文件屬于usr/include/malloc/,說(shuō)明...
內(nèi)存對(duì)齊的原則 數(shù)據(jù)成員對(duì)齊規(guī)則:結(jié)構(gòu)體(struct)(或(union))的數(shù)據(jù)成員,第一個(gè)數(shù)據(jù)成員放在offset為0的地方,以后每個(gè)數(shù)據(jù)成員存儲(chǔ)的起始位置要從該成員大小...
通過(guò)以上案例得出以下結(jié)論 對(duì)象的內(nèi)存影響有成員變量和屬性,而方法不會(huì)影響對(duì)象的內(nèi)存大小,而屬性和成員變量之間相差的就是getter和set方法,最終可得到影響對(duì)象內(nèi)存大小的是...
作為一名程序員,對(duì)于原理的探究必不可少,往往可以解決很多疑惑,例如Block您真的夠了解嗎?Block編譯后的結(jié)構(gòu)是什么?Block捕獲變量又是怎樣的?變量捕獲后又分別做了什...
在alloc的底層源碼探索過(guò)程中發(fā)現(xiàn)了callAlloc被調(diào)用了兩次,帶著疑惑,在初始化YDPerson時(shí)下了一個(gè)斷點(diǎn),并開(kāi)啟查看匯編模式 通過(guò)上圖匯編發(fā)現(xiàn)在斷點(diǎn)處調(diào)用的符號(hào)...
OpenGL (Open Graphics Library) 一個(gè)跨平臺(tái)編程語(yǔ)言,跨平臺(tái)的編程圖形程序接口,它將計(jì)算機(jī)的資源抽象為一個(gè)個(gè)OpenGL的對(duì)象,對(duì)這些資源的操作抽...
一、準(zhǔn)備資源 libGLTools.a CLTools glew 為方便大家,這里我已上傳到網(wǎng)盤(pán)中,網(wǎng)盤(pán)地址[https://pan.baidu.com/s/11Ym7Owc...