Time of Update: 2018-12-03
new操作符(new operator)與operator new的關係,你想在堆上建立一個對象,應該用new操作符。它既分配記憶體又為對象調用建構函式。如果你僅僅想分配記憶體,就應該調用operator new函數;它不會調用建構函式。如果你想定製自己的在堆對象被建立時的記憶體配置過程,你應該寫你自己的operator new函數,然後使用new操作符,new操作符會調用你定製的operator new。如果你想在一塊已經獲得指標的記憶體裡建立一個對象,應該用placement
Time of Update: 2018-12-03
從《LINUX裝置驅動開發詳解》裡面一字一句地打出來,放在這裡,供大家分享! LINUX系統上可用的C編譯器是GNU C編譯器,它建立在自由軟體基金會的編程許可的基礎上,因此可以自由發布。GNU C對標準C進行了一系列的擴充,以增強標準C的功能。1、零長度數組GNU C允許使用零長度數組,在定義變長對象的頭結構時,這個特性特別有用。例如:struct var_data{int len;char data[0];};char
Time of Update: 2018-12-03
Vistual Sutio 2010總體感覺非常慢,比起delphi
Time of Update: 2018-12-03
剛看到一些關於linux下C編程的一些風格,有些與ANSI C不同,記錄下來,以作以後參考:1、linux C中可以使用變長數組,甚至0長度數組,這點與ANSI C有很大的不同。ANSI C數組長度只能使用常數,即便是const修飾的常量也不能使用。當然在C++中可以使用常量及變長數組2、linux C中的switch中的case可以使用範圍表示,如case '0'...'3':就相當於ANSI C中的case '0':case '1':case '2':case
Time of Update: 2018-12-03
C風格的DLL匯出函數的典型方法說到底,DLL是對應C語言的動態連結技術,在輸出C函數和變數時顯得方便快捷所以寫DLL檔案最典型的一種Case:不用C++的類而都是C風格的代碼這種情況要匯出函數,有兩種方式:第一種:函數前加相應修飾符#ifdef __cplusplus #define EXPORT extern "C" __declspec (dllexport)#else#define EXPORT __declspec (dllexport)#endif然後在每一個要匯出的函數前面加EX
Time of Update: 2018-12-03
1、什麼是const? 常類型是指使用類型修飾符const說明的類型,常類型的變數或對象的值是不能被更新的。(當然,我們可以偷梁換柱進行更新:)2、為什麼引入const? const 推出的初始目的,正是為了取代先行編譯指令,消除它的缺點,同時繼承它的優點。3、cons有什麼主要的作用? (1)可以定義const常量,具有不可變性。 例如: const int Max=100; int Array[Max];
Time of Update: 2018-12-03
前言: 本文只是本人對C++中關於靜態類型的一個總結,如錯誤之處,請大家幫我改正。我分兩個方面來總結,第一方面主要是相對於面向過程而言,即在這方面不涉及到類,第二方面相對於物件導向而言,主要說明static在類中的作用。一、在面向過程設計中的static關鍵字1、靜態全域變數定義:在全域變數前,加上關鍵字 static
Time of Update: 2018-12-03
Bill Gates 曾經失言: 640K ought to be enough for everybody — Bill Gates 1981 C++程式員們經常編寫記憶體管理程式,往往提心弔膽。如果不想觸雷,唯一的解決辦法就是發現所有潛伏的地雷並且排除它們,躲是躲不了的。本文的內容比一般教科書的要深入得多,讀者需細心閱讀,做到真正地通曉記憶體管理。 1、記憶體配置方式 記憶體配置方式有三種:
Time of Update: 2018-12-03
對於C++而言,是一種無格式的語言,編譯器會忽略所有的空格,斷行符號標記,分行符號等等,並把所有這些統稱為空白。 然後我們來說說標示符的命名,首先,那些基本的概念要有哦;第二,最好不要以底線開頭;第三,不要以跟關鍵字相近的名字命名,比如INT,Return等等。 然後程式的步驟,編輯,編譯,連結,運行和測試。 對於C++而言,是一種無格式的語言,編譯器會忽略所有的空格,斷行符號標記,分行符號等等,並把所有這些統稱為空白。 C++語言區分大小寫!
Time of Update: 2018-12-03
前篇已經說明編程時,拿到演算法後該乾的第一件事就是把資源地圖成數字,而前面也說過“類型就是人為制訂的如何解釋記憶體中的位元的協議”,也就是說一個數字對應著一塊記憶體(可能4位元組,也可能20位元組),而這個數位類型則是附加資訊,以告訴編譯器當發現有對那塊記憶體的動作陳述式(即某種操作符)時,要如何編寫機器指令以實現那個操作。比如兩個char類型的數字進行加法操作符操作,編譯器編譯出來的機器指令就和兩個long類型的數字進行加法操作的不一樣,也就是所謂的“如何解釋記憶體中的位元的協議”。由於解釋協
Time of Update: 2018-12-03
一、定義.純虛函數是在基類中聲明的虛函數,它在基類中沒有定義,但要求任何衍生類別都要定義自己的實現方法。在基類中實現純虛函數的方法是在函數原型後加“=0”virtual void funtion1()=0二、引入原因:1、為了方便使用多態特性,我們常常需要在基類中定義虛擬函數。2、在很多情況下,基類本身產生對象是不合情理的。例如,動物作為一個基類可以派生出老虎、孔雀等子類,但動物本身產生對象明顯不合常理。為瞭解決上述問題,引入了純虛函數的概念,將函數定義為純虛函數(方法:virtual
Time of Update: 2018-12-03
轉載請註明出處:http://blog.csdn.net/muge0913/article/details/7314854Linux 實現了請求頁面調度,頁面調度是說頁面從硬碟按需交換進來,當不再需要的時候交換出去。這樣做允許系統中每個進程的虛擬位址空間和實際實體記憶體的總量再沒有直接的聯絡,因為在硬碟上的交換空間能給進程一個實體記憶體幾乎無限大的錯覺。交換對進程來說是透明的,應用程式一般都不需要關心(甚至不需要知道)核心頁面調度的行為。然而,在下面兩種情況下,應用程式可能像影響系統的頁面調度:
Time of Update: 2018-12-03
Trie樹,又稱為字典樹,是一種樹形結構,是一種雜湊樹的變種,是一種用於快速檢索的多叉樹資料結構。用於儲存大量的字串。它的優點是:利用字串的公用首碼來節約儲存空間。Trie的核心思想是空間換時間。利用字串的公用首碼來降低查詢時間的開銷以達到提高效率的目的。它有3個基本性質:1、根節點不包含字元,除根節點外每一個節點都只包含一個字元。2、從根節點到某一節點,路徑上經過的字元串連起來,為該節點對應的字串。3、每個節點的所有子節點包含的字元都不相同。這是一個Trie結構的例子:在這個Trie結構中,儲
Time of Update: 2018-12-03
本系列文章有muge0913編寫轉載請註明出處:http://blog.csdn.net/muge0913/article/details/7331129要對一個訊號進行處理,就需要給出此訊號發生時系統所調用的處理函數。可以對一個特定的訊號(除去SIGKILL和SIGSTOP訊號)註冊相應的處理函數。註冊某個訊號的處理函數後,當進程接收到此訊號時,無論進程處於何種狀態,就會停下當前的任務去執行此訊號的處理函數。 1、註冊訊號函數。#include<signal.h>void(*sig
Time of Update: 2018-12-03
1.是不是一個父類寫了一個virtual 函數,如果子類覆蓋它的函數不加virtual ,也能實現多態?virtual修飾符會被隱形繼承的。private 也被整合,只事衍生類別沒有存取權限而已。virtual可加可不加。子類的空間裡有父類的所有變數(static除外)。同一個函數只存在一個實體(inline除外)。子類覆蓋它的函數不加virtual ,也能實現多態。在子類的空間裡,有父類的私人變數。私人變數不能直接存取。-------------------------------------
Time of Update: 2018-12-03
一、介紹二叉搜尋樹(Binary Search Tree),或者是一棵空樹,或者是具有下列性質的二叉樹:1,若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值;2,若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值;3,它的左、右子樹也分別為二叉搜尋樹。二叉搜尋樹的尋找過程和次優二叉樹類似,通常採取二叉鏈表作為二叉搜尋序樹的儲存結構。中序遍曆二叉搜尋樹可得到一個關鍵字的有序序列,一個無序序列可以通過構造一棵二叉搜尋樹變成一個有序序列,構造樹的過程即為對無序序列進行排序的過程。
Time of Update: 2018-12-03
#include <unistd.h>#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/ioctl.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <linux/soundcard.h>#define
Time of Update: 2018-12-03
2、使用Soap Toolkit。目前最新Toolkit是3.0,從微軟下載http://www.microsoft.com/downloads/en/details.aspx?FamilyId=C943C0DD-CEEC-4088-9753-86F052EC8450&displaylang=en,安裝。然後在visual studio你的項目中,在“引用”上按右鍵,選擇“添加引用”,切換到COM頁,找到Microsoft soap type library
Time of Update: 2018-12-03
如果從dll傳出string,一般定義成PChar,由調用者分配好記憶體,並告訴大小,這樣比較麻煩。既然delphi的dll可以傳回variant(實際是array),就把字串轉成byte array直接傳回吧,如:Delphi XE代碼:function Call(AEndPointURL:PWideChar;AServiceName,AMethodName:PWideChar; const AParams:OLEVariant;out AResult:OLEVariant;out
Time of Update: 2018-12-03
Delphi REST Server返回的資料是JSON格式,假設有這樣一個函數: THMI=class public Mac:string; IP:string; Port:integer; //DateTime格式,delphi的Json封裝在ASP.Net中會報錯“Date格式未按 JSON 的要求以“//Date(”開始並以“)//”結束” LoginTime:Double; Status:integer; end;