@陳梓瀚(vczh)
我這里的封裝,不如說是腳本文件管理,我對(duì)template的使用沒有到那個(gè)層次,呵呵
@megax
貌似這個(gè)東東不能在linux下使用,需要自己DIY??
re: 某內(nèi)存池中的指針用法 zuhd 2010-05-04 10:55
@小時(shí)候可靚了
我個(gè)人覺得
union BLOCK
{
DWORD next;
unsigned char data[BLOCKSIZE];
};
這樣寫都行,只要能把這個(gè)指針的地址保存到 data的前4個(gè)字節(jié),后面自己做強(qiáng)制轉(zhuǎn)換就好了,不過BLOCK* next這樣的格式是科學(xué)的,用void* 或DWORD來聲明指針,然后用*(T*)這樣的格式去取,就太不和諧了
re: 游戲中的容器設(shè)計(jì) zuhd 2010-05-03 09:15
@expter
是必須的,我思考的是無聊的玩家頻繁交換兩個(gè)格子內(nèi)的物品,不做增減操作,是否有必要給個(gè)cold down?
re: 碩士論文致謝 zuhd 2010-04-30 09:51
好文,程序員亦有真情。更期待一文關(guān)于“陸鳳”的,呵呵,你懂的
buddy, some asm code will make it clear!
看到了這個(gè)好報(bào),我仿佛看到了Linus的身影,but, without desitination like linux.我還是要頂一下,國(guó)內(nèi)缺少的就是這種free & remote cooperation!!!希望你們能成功
我只想說樓主你很ass hole,你要是想備忘,拜托不要發(fā)到首頁好嗎!你轉(zhuǎn)到csdn的那些東西只會(huì)浪費(fèi)大家的時(shí)間
如果單模塊的邏輯單一而且復(fù)雜,那就考慮拆出來單獨(dú)一個(gè)進(jìn)程網(wǎng)絡(luò)通訊吧,那就永遠(yuǎn)沒有callback了
這種情況我一般會(huì)這樣做,
class A
{
Root* m_pRoot;
}
class B
{
Root* m_pRoot;
}
class Root
{
A* m_a;
b* m_b;
}
讓Root來統(tǒng)一管理所有的數(shù)據(jù),然后root提供出一些接口,讓a和b來做他們自己想做的事情,a,b去拿root的數(shù)據(jù),root來回調(diào)a,b這樣能解決單向的callback.
re: 方法與工具 zuhd 2010-04-15 09:37
很同意第二條
re: 靜態(tài)變量的初始化問題 zuhd 2010-03-07 18:02
@小蘇
class CTest1
{
public:
CTest1()
{
printf("init\n");
}
};
class CTest2
{
public:
static CTest1 m_test;
};
CTest1 CTest2::m_test;
這段代碼按道理講是和上面的代碼功能類似的,
這段是可以打印出來的。
至于上面那段為什么沒有打印,
思考中(難道模板必須要實(shí)例化才能成為有效代碼??),期待高手解答
luckcat解釋的很中肯,學(xué)習(xí)了
謝謝,懂了,很少用到模板,有時(shí)間要充電一下
奇怪為什么有這樣的需求?為什么不用udp,udp可以穿越NAT
以前獲取mac地址時(shí)用到了這個(gè)東西,基本上用的第一個(gè)方案,學(xué)習(xí)!
謝謝孔雀的熱心回復(fù),我還是有很多問題不懂:
1,template <typename T>
typename Singleton<T>::object_creator
Singleton<T>::create_object;
這句話的初始化把我弄糊涂了,我甚至連這句話的語法都沒有看懂
2,我下了斷點(diǎn)
如果我寫了int sint = Singleton<int>::instance();
這樣instance就會(huì)斷進(jìn)去兩次,請(qǐng)解釋下!謝謝
沒明白你加的那段代碼放在什么地方,麻煩你貼個(gè)完整的代碼好嗎?謝謝
我看不懂這個(gè)單件的實(shí)現(xiàn),哪位高手能解釋下,謝謝!
初始化的順序是怎樣的?感覺像是在循環(huán)調(diào)用
沒怎么看懂上面一段代碼,作者能詳細(xì)的解釋下嗎?謝謝
void Call(Base *ptr)
{
ptr->Call();
}
直接這樣傳函數(shù)指針不就可以了嗎?為什么要求是虛擬繼承啊,普通的函數(shù)指針不行嗎?
棧里有函數(shù)的返回地址,所以溢出了,覆蓋了返回地址,函數(shù)執(zhí)行完就出錯(cuò)了。
==========================================
這句話是重點(diǎn),當(dāng)ret的時(shí)候,call下條指令時(shí)異常了,如果你多定義了幾個(gè)變量,讓棧溢出不到函數(shù)的返回地址,錯(cuò)誤依然不會(huì)出現(xiàn)的
對(duì)于堆來講,生長(zhǎng)方向是向上的,也就是向著內(nèi)存地址增加的方向;對(duì)于棧來講,它的生長(zhǎng)方向是向下的,是向著內(nèi)存地址減小的方向增長(zhǎng)。看下反匯編代碼一切都明白了
感謝提供詳細(xì)的asm分析,但是看了你這篇文章后,我還是沒有明白為什么要在arg[16]的位置保存了arg[0]的地址,另外:
變長(zhǎng)數(shù)組在實(shí)現(xiàn)時(shí)實(shí)際上退化為了指針,原先定長(zhǎng)的數(shù)組,它的地址同時(shí)也就是容納數(shù)組元素位置的首地址,而變長(zhǎng)數(shù)組,退化為了指針,該指針指向的位置才是真正容納數(shù)組元素的首地址.
二維數(shù)組或是char** p的原理應(yīng)該都是這樣的吧?
請(qǐng)指教
re: 基類角色之對(duì)象管理器 zuhd 2009-07-03 09:55
@Kevin Lynx
兄弟這段代碼很經(jīng)典啊,學(xué)習(xí)了!
push %ebp ;保存ebp寄存器
mov %esp,%ebp ;將esp寄存器保存到ebp
sub $0x18,%esp ;調(diào)整esp,用以保存返回地址和局部變量,這個(gè)調(diào)整值并不確定,根據(jù)局部變量的情況而定
這樣的指令看起來好怪哦,這和在windows下的調(diào)試有什么區(qū)別?
用指針做key有什么意義呢?它和int做索引有什么區(qū)別?
re: 一年過去了... zuhd 2009-05-25 09:24
Just do it! Pretty girl
re: 復(fù)雜的邏輯的BUG zuhd 2009-03-04 09:37
只要是同一份內(nèi)存數(shù)據(jù),在同一個(gè)線程中,就不會(huì)出現(xiàn)所謂沖突的問題,仔細(xì)檢查下代碼,看看,你后面說的遍歷刪除map的問題是防止刪除最后一個(gè)元素的時(shí)候越界
nice English, how can you do this, really amazing!
理解jmp的時(shí)候,只要理解為ip"平移了n byte"而不是"移動(dòng)到"這樣就不會(huì)搞錯(cuò)了,我也是uestc的,不過畢業(yè)2年了,我郵箱:huhf#21mmo.com,大家一起學(xué)習(xí)
re: perl 入門指引 zuhd 2009-01-15 09:43
準(zhǔn)備學(xué)習(xí)lua
心跳包要互發(fā)的和正常的req->ack一樣,也就是說保持穩(wěn)定的脈沖,我覺得只要在最外面暴露登陸服務(wù)器和業(yè)務(wù)服務(wù)器,登陸服務(wù)器驗(yàn)證完之后,告訴客戶端連接哪個(gè)業(yè)務(wù)服務(wù)器之后,這個(gè)鏈接就可以回收了
1,服務(wù)器分層不太清晰,登陸服做的事情過多,考慮可以分層實(shí)現(xiàn)
2,消息跨服需中轉(zhuǎn),如果服務(wù)器很多的話,那么服務(wù)器組的管理也是一個(gè)問題
re: 一道有意思的題目,大家看看輸出:) zuhd 2009-01-13 09:58
樓上說的內(nèi)存泄漏是存在的,泄漏了4* (4 + 4) = 32 BYTE,在后面的4次只是刪除了成員指針,但沒有刪除自己(sizeof(B)),還有這種構(gòu)造函數(shù)的嵌套是極不提倡的,如果基類的成員不是int,是int*的話,估計(jì)會(huì)讓人很頭痛的
PDB文件失效了,Clean->Rebuild即可
epoll的優(yōu)勢(shì)是輪詢的效率高,會(huì)忽略閑置的fd,select不會(huì)。不管什么網(wǎng)絡(luò)模型,感覺網(wǎng)絡(luò)事件和邏輯處理都是兩個(gè)線程的,而且只需兩個(gè)線程。我比較同意1樓的想法,感覺很成熟。
還是看看簡(jiǎn)單點(diǎn)的界面開發(fā)。最關(guān)心的就是圖形 圖像 文本 窗口這些東西。
=============================================
我暈,為啥在linux下做這些東西啊
請(qǐng)問你這些代碼是在邏輯層的么?在邏輯層不是直接調(diào)用epoll的api就可以了么?沒明白你的意思和代碼哦
建議dll中的函數(shù)參數(shù)都是原始類型,int ,char* 等
直接load一張底圖是很方便啊,不過,一點(diǎn)一點(diǎn)畫也能提高自己的能力,贊一個(gè)
re: 面試在華為 zuhd 2008-12-19 10:01
真的很魔鬼,雖然這樣的方式不能選出最好的人,但是有一點(diǎn)是可以肯定的,就是可以淘汰掉差的人。
=================================================
我覺得這話說的很中肯啊,上次在外旅游的時(shí)候也接到這個(gè)電話,被我拒絕了,一個(gè)是我已經(jīng)上班了,主要是,我擔(dān)心去了打擊我的自信心,我覺得我肯定不會(huì)有博主做的好,good job!
re: 赫夫曼編碼 zuhd 2008-12-17 09:47
這樣看你的代碼更像一道作業(yè)題,其實(shí)你可以重構(gòu)封裝一下,作為一個(gè)kit來用,提供給大家下載,這樣更有易讀和易用性