Time of Update: 2018-07-18
在標頭檔裡寫下下面兩行相同的代碼: typedef int X; typedef int X; gcc編譯馬上就會報redefinition of typedef 'X',換g++居然啥事沒有,怪異吧。於是去查文檔,發現C++裡是這樣描述的:“ In a given non-class scope, a typedef specifier can be used to redefine the name of any type declared in
Time of Update: 2018-07-18
對象如果可以提供相關對象的引用,就是一個集合,稱為枚舉,遍曆集合中的項目。集合必須執行介面System.Collentions.LEnumerable, LEnumerable只定義了一個方法,如下所示: Interface IEnumeralbe { IEnumerator GetEnumerator(); } IEnumerator的工作方式如下:
Time of Update: 2018-07-18
為了提供更合理的建構函式,我們不得不進行多次建構函式的重載,使得使用者的調用更加簡單。但是這樣的排列組合隨著參數的增加成幾何級增長,的確很不方便。現在有了Object and Collection Initializer(對象和集合初始化器)就方便多了。 舉個例子: private class Cat{ // Auto-implemented properties. public int
Time of Update: 2018-07-18
private void test() { List<ITT > ts = new List<ITT >();
Time of Update: 2018-07-18
Collection主要是指像Array, ArrayList, List, Dictionary,
Time of Update: 2018-07-18
來源: 隨心所欲 - 部落格園 本文涉及的內容: 1:自己製作Pop3Helper 信件格式的處理有麻煩 2:使用現成的pop3類 LumiSoft.Net.POP3.Client; 有兩種處理方法 3:使用IMAP收郵件 功能似乎更多,比起pop3來。 4:SMTP發送郵件 關於 Mailbox unavailable. The server response was: 5.7.1 Unable to relay
Time of Update: 2018-07-18
2015年4月1日總結。 a |= 1<<x //第x位寫1a &=~(1<<x) //第x位寫0(a &(1<<x)) == a //判斷1,等號左邊括弧不能省略(a& (1<<x))==0 //判斷0a>>n //除法a/ 2^na<<n //乘法a*2^n ---------
Time of Update: 2018-07-18
一些有關C++語言中的bit操作 1) 函數實現交換兩個int型變數的值,要求不定義任何中間變數。 C / C++ 版: void Swap(int *a, int *b) { *a^=*b; *b^=*a; *a^=*b; }
Time of Update: 2018-07-18
功能在hdcDest中繪製位元影像 擷取案頭代碼: CDC *pdeskdc = GetDesktopWindow()->GetDC(); CRect re; //擷取視窗的大小 GetDesktopWindow()->GetClientRect(&re); CBitmap bmp;
Time of Update: 2018-07-18
不用選擇分支找出指定兩整數中的最大值與最小值: int x; int y; // 找出x與y的最大值與最小值int r; // r儲存結果r = y ^ ((x ^ y) & -(x < y)); // min(x, y) 在一些很少的機器上,分支比較很耗資源,而且沒有條件移動指令存在,以上的實現可能比傳統的方法: r = (x < y) ? x : y 要快。 即使比後者多執行兩步指令。(通常,前面的方法要快) 它的工作原理如下:
Time of Update: 2018-07-18
本篇文章主要參考了以下這篇文章:http://apps.hi.baidu.com/share/detail/5984673 最近在寫程式時,我需要判斷一個DWORD 類型變數的某一個二進位位是否為1或0, 我們都很清楚,DWORD類型的變數在記憶體中佔32位,現在要我們判斷其中的某一位是0還是1, 該如何是好呢。這時我想到了C語言中的位操作,藉助位操作,可以實現我們想要的功能。 關於位操作,我從網上收集整理的資料如下: 一、位的概念
Time of Update: 2018-07-18
關於C中的static類型的函數是與extern類型相對的,也就是說函數的調用方式並沒有改變,只通過這個關鍵字影響了linker的行為。 下面在具體說說他們的區別,extern都知道,是指該函數在整個工程中可見;而static是指只在當前檔案中可見,在其他檔案中不可見。 舉個例子,一個工程兩個檔案1.c和2.c 現在1.c裡有定義一個static類型的函數 static int proc( int i ) {...} 2.c裡聲名了同樣一個函數 int proc(
Time of Update: 2018-07-18
C語言的一個關鍵字——static Static在C語言裡面有兩個作用,第一個是修飾變數,第二個是修飾函數。 1、Static修飾變數 按照作用範圍的不同,變數分為局部變數和全域變數。如果用static修飾變數,不論這個變數是全域的還是局部的都是儲存在待用資料區。下面分開來講: ¨
Time of Update: 2018-07-18
static修飾函數意義是:該函數只在該模組內部可見。 因為在C中,函數是外部的。即不管是寫在哪個檔案裡的函數,在其它檔案裡都是可見的。 為了限制一個函數僅在一個源檔案裡可見,可用static指示符。 不想C++語言,使用一個函數之前,必須要有該函數的簽名,C與需要。 測試代碼: //////////////////////////////////////////////test1.cint fun(){
Time of Update: 2018-07-18
For Example: Step1: Defining a string in VS String Table
Time of Update: 2018-07-18
首先給出結論: c++中和模板相關的代碼,都放在.h檔案當中。 為什麼呢。 首先我們要理解編譯器是怎麼處理模板的:編譯器在編譯cpp或cc檔案的時候,根據代碼中使用到的參數類型,執行個體化對應版本的函數。
Time of Update: 2018-07-18
public class QueueManage { /// /// 發送對象到隊列中 /// /// 隊列名稱,因為隊列名稱在一個應用中應該不改變的,所以大家最好寫在設定檔中 /// 要發出去的對象 public static void SendQueue(string QueuePath,MyBase.SmsQueue sq) { System.Messaging.MessageQueue mqSend=new
Time of Update: 2018-07-18
出自:http://blog.ednchina.com/lijin305/62382/message.aspx -------------------------------------------------------------------------------- #include < windows.h > void clrscr(void); void clreol(void); void clreoscr(void); void gotoxy(int ,int ); /
Time of Update: 2018-07-18
工作後第一篇技術blog,抽象出一些小技術,記錄下。 刪除單個檔案直接用 File.Delete; 刪除檔案夾下子檔案夾及子檔案用FileInfo和DirectoryInfo,根目錄下先刪檔案,再遞迴進入子檔案夾。注意許可權不足導致的無法刪除現象,刪除前統一改成Normal屬性。 ClearSingleFile(); ClearDirectory(); /// <summary>
Time of Update: 2018-07-18
深度優先搜尋:從圖的某頂點出發,依次訪問該頂點的鄰接點。 廣度優先搜尋:類似樹的按層次遍曆 依次訪問某頂點各個未訪問的頂點。 以遍曆下圖為例: 假設從1點開始遍曆,深度優先:1能到2,到了2以後就不管1能到的3,5了,就直接以2為起始點,以此類推,知道到達一個點不能再繼續往下,則退回到上一個結點,直到所有的點被遍曆,舉例其中的一個深度優先搜尋:1-2-4-5-6-7-8-9-3 而廣度優先:1能到2,3,5則先遍曆2,3,5,再依次從2,3,