Time of Update: 2018-12-05
C#代碼動態編譯、動態執行、動態調試Author:Eaglet 前幾天看到一篇關於.net動態編譯的文章 .NET中的動態編譯 ,很受啟發。在此基礎上我做了一些封裝,為使調用更加簡單,並增加了對動態代碼調試的支援,相同代碼只編譯一次的支援,代碼改動自動重新編譯,代碼引用檔案的自動載入和手工載入等功能。 如,我封裝的類CSharpProvider很簡單,下面說明一下一些公用成員的用法。 公用屬性
Time of Update: 2018-12-05
1:定義: 它們看起來象函數,運作起來象函數,比宏(macro)要好得多,使用時還不需要承擔函數調用的開銷。當內聯一個函數時,編譯器可以對函數體執行特定環境下的最佳化工作。這樣的最佳化對"正常"的函數調用是不可能的。2:規則: inline關鍵字必須和函數體定義放在一起才可以實現內聯,僅僅將inline放在函式宣告之前不起任何作用。inline是一個用於實現的關鍵字而不是一個用於聲明的關鍵字。對於類方法,定義在類體內部的方法自動成為內聯方法。3:實現思想:
Time of Update: 2018-12-05
1: #ifndef __INCvxWorksh 2: #define __INCvxWorksh 3: #ifdef __cplusplus 4: extern "C" { 5: #endif 6: /*...*/ 7: #ifdef __cplusplus 8: } 9: #endif 10: #endif /* __INCvxWorksh */顯然,標頭檔中的編譯宏“#ifndef __INCvxWorksh、#define
Time of Update: 2018-12-05
C++中用const限定符來定義常量,但const出現的可以出現在常量定義中,也可以出現在方法定義中,並且出現的位置也有所不同,所表示的意思也不同。 在任何可能的情況下都要使用 const。在聲明的變數或參數前加上關鍵字 const 用於指明變數值不可被篡改 (如 const int foo ). 為類中的函數加上 const 限定符表明該函數不會修改類成員變數的狀態 (如 class Foo { int Bar(char c) const; };).
Time of Update: 2018-12-05
printf的聲明 int _cdecl printf(const char* format, …);呼叫慣例:_cdecl_cdecl呼叫慣例的特點: 1). 參數從右向左依次入棧 2). 調用者負責清理堆棧 3). 參數的數量類型不會導致編譯階段的錯誤對x86, 棧的生長方向向下(高地址向低地址),_cdecl呼叫慣例函數參數從右向左入棧,因此從第一個固定參數(format)的堆棧地址向前(向上,向高地址)移動就可得到其他變參的地址。1:
Time of Update: 2018-12-05
這是德問技術社區的一個問題,測試了一下,使用typeid等方法都無法正確區分二者,不討論二者是不是有必要進行區分;下面給出一個方案吧,其實就是利用了Traits,模板的匹配規則。 1: template<typename T> class _ischararray_; 2: 3: template<typename T, int N> 4: class _ischararray_<T[N]> { public: static
Time of Update: 2018-12-05
List<Control> controls = new List<Control>(); public Form2() { InitializeComponent(); controls.Clear(); foreach (Control ctrl in Form1.Controls) {
Time of Update: 2018-12-05
1:記憶體對齊定義: 現在使用的電腦中記憶體空間都是按照位元組劃分的,從理論上講似乎對任何類型的變數的訪問可以從任何地址開始,但是實際上電腦系統對於基礎資料型別 (Elementary Data Type)在記憶體中的存放位置都有限制,要求這些資料存放區首地址是某個數K的倍數,這樣各種基礎資料型別 (Elementary Data Type)在記憶體沖就是按照一定的規則排列的,而不是一個緊挨著一個排放,這就是記憶體對齊。對齊模數:
Time of Update: 2018-12-05
CFile類提供了對檔案進行開啟,關閉,讀寫,刪除,重新命名以及擷取檔案資訊等檔案操作的準系統,足以處理任意類型的檔案操作。 CFile類是MFC檔案類的基類,支援無緩衝的二進位輸入輸出,也可以通過與CArchive類的配合使用而支援對MFC對象的帶緩衝的序列化。 通過CFile類來開啟檔案可以採用兩種方式:一種是先構造一個CFile類對象然後再調用成員函數Open()開啟檔案,另一種方法則直接使用CFile類的建構函式去開啟一個檔案。下面語句分別示範了用這兩種方法開啟磁碟檔案"C:
Time of Update: 2018-12-05
便於對文章的開展,需要先明確兩個概念。第一個就是很多人用.Net寫程式,會談到託管這個概念。那麼.Net所指的資源託管到底是什麼意思,是相對於所有資源,還是只限於某一方面資源?很多人對此不是很瞭解,其實.Net所指的託管只是針對記憶體這一個方面,並不是對於所有的資源;因此對於Stream,資料庫的串連,GDI+的相關對象,還有Com對象等等,這些資源並不是受到.Net管理而統稱為非託管資源。而對於記憶體的釋放和回收,系統提供了GC-Garbage
Time of Update: 2018-12-05
<fstream>
Time of Update: 2018-12-05
Time of Update: 2018-12-05
第一篇:typedef struct與struct的區別1. 基本解釋typedef為C語言的關鍵字,作用是為一種資料類型定義一個新名字。這裡的資料類型包括內部資料類型(int,char等)和自訂的資料類型(struct等)。在編程中使用typedef目的一般有兩個,一個是給變數一個易記且意義明確的新名字,另一個是簡化一些比較複雜的型別宣告。至於typedef有什麼微妙之處,請你接著看下面對幾個問題的具體闡述。2. typedef &
Time of Update: 2018-12-05
關鍵的一點在於:靜態成員函數只和類型有關,而與對象無關!這樣就可以看出靜態成員函數和非靜態成員函數的根本區別就在於:靜態成員函數沒有this指標,因為它沒有對象,而非靜態成員函數有一個指向當前對象的指標this。舉例:class A{public: void notStaticFunc(int a); static void staticFunc(int a);} void f(A& s){ s.notStaticFunc(100);
Time of Update: 2018-12-05
1. 聯合說明和聯合變數定義 聯合也是一種新的資料類型, 它是一種特殊形式的變數。 聯合說明和聯合變數定義與結構十分相似。其形式為: union 聯合名{ 資料類型 成員名; 資料類型 成員名; ... } 聯合變數名; 聯合表示幾個變數公用一個記憶體位置, 在不同的時間儲存不同的資料類型 和不同長度的變數。 下例表示說明一個聯合a_bc: union a_bc{
Time of Update: 2018-12-05
原文連結:http://blog.csdn.net/geeeeeeee/archive/2008/12/02/3427920.aspxdynamic_cast: 通常在基類和衍生類別之間轉換時使用,run-time castconst_cast: 主要針對const和volatile的轉換. static_cast: 一般的轉換,no run-time check.通常,如果你不知道該用哪個,就用這個。 reinterpret_cast:
Time of Update: 2018-12-05
/*********以下是轉載《16道嵌入式C語言面試題中的一題》***********/關鍵字volatile有什麼含意 並給出三個不同的例子。 一個定義為volatile的變數是說這變數可能會被意想不到地改變,這樣,編譯器就不會去 假設這個變數的值了。精確地說就是,最佳化器在用到這個變數時必須每次都小心地重新讀 取這個變數的值,而不是使用儲存在寄存器裡的備份。下面是volatile變數的幾個例子: 1). 平行裝置的硬體寄存器(如:狀態寄存器) 2).
Time of Update: 2018-12-05
Lists將元素按順序儲存在鏈表中. 與 向量(vectors)相比, 它允許快速的插入和刪除,但是隨機訪問卻比較慢. assign() 給list賦值 back() 返回最後一個元素 begin() 返回指向第一個元素的迭代器 clear() 刪除所有元素 empty() 如果list是空的則返回true end() 返回末尾的迭代器 erase() 刪除一個元素 front() 返回第一個元素 get_allocator() 返回list的配置器 insert() 插入一個元素到list中
Time of Update: 2018-12-05
atof(將字串轉換成浮點型數)相關函數 atoi,atol,strtod,strtol,strtoul表標頭檔 #include <stdlib.h>定義函數 double atof(const char *nptr);函數說明 atof()會掃描參數nptr字串,跳過前面的空白字元,直到遇上數字或正負符號才開始做轉換,而再遇到非數字或字串結束時('')才結束轉換,並將結果返回。參數nptr字串可包含加號或減號、小數點或E(e)來表示指數部分,如12
Time of Update: 2018-12-05
C語言中如何使用宏C(和C++)中的宏(Macro)屬於編譯器預先處理的範疇,屬於編譯期概念(而非運行期概念)。下面對常遇到的宏的使用問題做了簡單總結。 關於#和##在C語言的宏中,#的功能是將其後面的宏參數進行字串化操作(Stringfication),簡單說就是在對它所引用的宏變數 通過替換後在其左右各加上一個雙引號。比如下面代碼中的宏: #define WARN_IF(EXP) do{ if (EXP) fprintf(stderr, "Warning: " #EXP "/n"