C/C++語(yǔ)言的本質(zhì)(Directly)
來(lái)源:程序員人生 發(fā)布時(shí)間:2014-10-12 21:54:22 閱讀次數(shù):3841次
記得大三實(shí)習(xí)的時(shí)候在一位喜歡做破解的哥們的影響下了解反匯編調(diào)試這么一回事兒,于是實(shí)踐后
恍然悟到:(1)學(xué)匯編不為寫(xiě)匯編,而為透析c/c++諸多細(xì)節(jié)的本質(zhì)(2)大神的境界應(yīng)該是每寫(xiě)一句
c/c++語(yǔ)言,其相應(yīng)匯編代碼便了然于心。
題外話:本文總是把c語(yǔ)言和c++語(yǔ)言寫(xiě)在一起,是因?yàn)楣P者喜歡,筆者認(rèn)為如果說(shuō)匯編語(yǔ)言是機(jī)器
語(yǔ)言的第一重映射,那么c語(yǔ)言就是匯編語(yǔ)言的第一重映射、c++是c語(yǔ)言的第1.5重映射。因此要精通
c語(yǔ)言,必然要熟悉匯編,要精通c++必然要精通c語(yǔ)言。
列舉下我通過(guò)匯編透析到的的語(yǔ)言本質(zhì)吧:
(1)The different of pointer and reference
int i=0;
int& j=i;
int* k=&i;// int* k=&j;
常人的解釋是這樣的:reference: alias(the same entity) ; pointer: address(addressof entity)
In fact, the implement of pointer and reference by assembly is the same. Such as following:
int i = 5;
int* pi = &i;
int ri = i;
The corresponding assembly code:
mov dword ptr [i], 5
lea eax, [i]
mov dword ptr[pi], eax;
lea eax, dword ptr[i]
mov dword ptr[ri], eax
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
------分隔線----------------------------
------分隔線----------------------------