原创 結構體作爲參數和返回值原理

 結構體作爲函數的參數會在調用函數前把整個結構體放到棧上但是不是通過push而是減去esp然後通過mov指令拷貝結構體,push每次都放4字節到棧上。函數返回結構體其實是調用者傳一個結構體的地址參數進去,然後函數體內部直接用這塊內存初始化

原创 c/c++語言位域注意事項

struct weiyu { int a:1; int b:2; } a存放在內存的低位,在小端的機器上。 尤其要注意下面這種情況 weiyu w; w.a = 1; 這時w.a爲-1,因爲它是有符號的,這是個符號位。

原创 暴雪歷史

  美國的暴雪(暴雪娛樂公司Blizzard Entertainment)1994年開發成功1代 以下內容是<揭祕:美國暴雪娛樂公司三大成功祕訣>一文節選,樓主如果感興趣,可查閱全文. 1992年,一種全新的遊戲類型出現了。一家叫

原创 結構體的構造函數

 編譯器不會爲結構體生成默認的四個構造和析構函數,除非你自己去主動定義,那樣結構體在new的時候纔會調用構造函數。結構體有虛函數的時候編譯器會給結構體生成構造函數。

原创 c++ new,delete,析構函數原理,彙編展示

   479:  String2* str2 = new String2;00401821 6A 10            push        10h       //傳入對象大小00401823 E8 C8 03 00 00  

原创 C語言之斷言

 C語言的那些小祕密之斷言 每次寫摘要我都覺得是一件很頭疼的事兒,因爲我知道摘要真的很重要,它幾乎直接就決定了讀者的數量。可能花了九六二虎之力寫出來的

原创 whole program optimization 優化選項

Visual C++ 優化概述Visual Studio .NET 2003 適用於:Microsoft Visual C++ .NET 2003Microsoft Visual C++ Toolkit 2003Microsoft Vis

原创 Linux源代碼目錄樹結構

  linux用來支持各種體系結構的源代碼包含大約4500個C語言程序,存放在270個左右的子目錄下,總共大約包含200萬行代碼,大概佔用58MB磁

原创 SetUnhandledExceptionFilter處理未捕獲異常

       首先看下百度上的對此函數的解釋。設置異常捕獲函數.   當異常沒有處理的時候,系統就會調用SetUnhandledExceptionFi

原创 vc 編譯鏈接選項

 vc 編譯鏈接選項        大家可能一直在用VC開發軟件,但是對於這個編譯器卻未必很瞭解。原因是多方面的。大多數情況下,我們只停留在“使用”它

原创 深入理解C語言

  導讀:Dennis Ritchie過世了,他發明了C語言,一個影響深遠並徹底改變世界的計算機語言。一門經歷40多年的到今天還長盛不訓的語言,今天

原创 c++靜態成員變量

靜態成員變量當是const的時候可以直接在類中去賦值,但是如果不是const則不行。不管是不是const都需要在cpp中定義一下像int class::m_static = 0;

原创 c語言面試題

不用局部變量和全局變量實現strlen;int My_Strlen( char *str ) { if( *str == '\0' ) { return 1; } else {

原创 c/c++返回結構體方法和this指針,平時總結

 函數返回結構體其實是調用者傳一個結構體的地址參數進去,然後函數體內部直接用這塊內存初始化並調用構造函數。以結構體作爲參數是通過傳結構體的指針到棧上然後函數一開始把傳進來的結構體拷到本函數的棧內,這樣就不會影響原來結構體。類的this指針

原创 c++子類和父類成員函數重名

子類和父類返回值參數相同,函數名相同,有virtual關鍵字,則由對象的類型決定調用哪個函數。子類和父類只要函數名相同,沒有virtual關鍵字,則子類的對象沒有辦法調用到父類的同名函數,父類的同名函數被隱藏了,也可以強制調用父類的同名函