Time of Update: 2018-12-04
由於C#Managed 程式碼中是沒有指標的,所以當要把一個函數做為一個參數傳給另外一個函數時,用正常方法就沒辦法了,由於就弄出了個代理(Delegate),當然C#中的代理也只是類似函數指標,它除了能實現函數指標的功能外還有其他一些特性.先來說下C++中的函數指標:void PrintNum(int num) { cout<<num;} //一個列印數位簡單函數void (*FunPtr)(int);
Time of Update: 2018-12-04
excel的公式忘掉了;想做一個輸入一個數 連續列印五次結果 每次結果 *1.25 還要四捨五入; 於是寫個小程式,我以為2分鐘 連帶測試就搞定了,結果折騰了近半小時,還是眼高手低啊; 其實原因很簡單,就是 *1.25後的值 需要每次判斷 四捨五入後 取整,然後在繼續下一次迴圈; 貼代碼;別的不多說了……#include"iostream"using namespace std;int main(){ float i = 0; int j=1; cout
Time of Update: 2018-12-04
平時在作資料庫插入操作時,如果用 INSERT 語句向一個varchar型欄位插入內容時,有時會因為插入的內容長度超出規定的長度而報錯。尤其是插入中英文混合字串時,SQL Server中一般中文要佔兩個位元組,所以對混合型的字串就要作一個處理,統一按位元組長度來計算字串長度,方法如下: /// <summary> /// 擷取指定位元組長度的中英文混合字串 /// </summary> private string GetString(string str,
Time of Update: 2018-12-04
不安裝.NET Framework 運行C#.NET程式 收藏 首先,要說明的是飛信也是用C#寫的,但是我們在運行C#時,並不用安裝.NET Framework,這事因為,飛信本身內建了一個.NET 虛擬程式,由這個程式來調用我們飛信主程式。 同樣,我們要可以利用這可現成的虛擬機器來運行我們的C#.NET程式,這樣即使在沒有安裝.NETFramework的windows系統中,也可以運行我們的C#.NET程式。
Time of Update: 2018-12-04
[size=medium]Download, Installation, Configuration:Download: ftp://ftp.gnu.org/gnu/cgicc/Unpack: tar xzf cgicc-X.X.X.tar.gzBuild Libraries: * cd cgicc-X.X.X/ * ./configure --prefix=/usr (Default or /opt. Make sure you have write priviges to
Time of Update: 2018-12-04
困難度之一“C++ 是個難學易用的語言”,這句話相信很多人都心有戚戚。C++的學習難度,一在於語言本身太多的“幕”,另一個就在於 "paradigm shift" (思考模式的移轉)。傳統語言如 C, Pascal, Basic, Fortran...,除了模樣看起來稍有不同,基本上都是函式 call 來 call 去,大同小異,很容易掌握。你想做的動作,在 code 中都看得一清二楚。你所看不到的,也不過就是編譯器為你的函式加上用以處理堆疊的一小段碼(prologue 和 epilogue),
Time of Update: 2018-12-04
本文用經典的生產者消費者的例子,說明Mnitor對象的用法。實現的目標是:生產者生產一個資料,然後消費者開始消費,消費完成後生產者繼續生產,迴圈10次後結束。下面是代碼: namespace ConsoleTest { /// <summary> /// 生產者消費者例子 /// </summary> public class Producer_Consumer { /// <summary> //
Time of Update: 2018-12-04
STL用法很通俗易懂,但是,想深入瞭解STL源碼的實現,以為以後設計自己的模板類。首先應瞭解和掌握模板類的設計方法,然後推薦《C++模板元編程》、《STL源碼剖析》兩本書,博大精深的STL!這些書電子版在jask中都能下到。1. 類模板和STLSTL是C++的標準模板庫,其源碼編程完全依賴模板實現。類模板是能根據不同參數建立不同類型成員的類。2. 類模板的定義template<模板類參數>class 類名{ 成員名;};根據需要參數可以多個。3.
Time of Update: 2018-12-04
using System;class Circle{ private int r; public Circle() { Console.WriteLine("NonStatic"); } static Circle() { Console.WriteLine("Static"); } public static void Main() { Console.WriteLine("1st Line");
Time of Update: 2018-12-04
工作中自己用C#寫了專門讀寫EXCEL(不需要OFFICE環境,直接讀原始檔案,速度快)的COM組件,在使用過程中,發現原先的註冊程式是有問題的。網上也有同樣的網友碰到這個問題,但都沒找到合適的解決辦法。現在我把問題和解決方案都寫出來,供讀者參考。 其實問題都是出在COM組件的註冊上,根本的原因就是REGASM /u 命令有些時候是無效的! 我這邊提供的註冊過程是先卸載,然後註冊。原先的註冊過程是: (1) regasm /u XLSRW.dll (2)
Time of Update: 2018-12-04
入門級:Ptypes Ptypes一個開源輕量級的c++庫,包括對一些I/O操作、網路通訊、多線程和異常處理的封裝。雖然代碼有限,包括的內容不少,麻雀雖小,五髒俱全。 提高:STL Boost和STL ACE Boost庫是一個可移植、提供原始碼的C++庫,作為標準庫的後備,是C++標準化進程的發動機之一。
Time of Update: 2018-12-04
以下為測試環境:gcc 4.3.2-1-1GNU/Linux Debian 5.0(剛開始使用csdn部落格,沒經驗。由於中間調試時間較長,忘了備份,剛寫完,趕緊發了。一看,沒有;再看,還是沒有。揮去憤怒,重寫一篇。望讀者以此為鑒,及時備份。:-)1、extern與staticextern
Time of Update: 2018-12-04
1、結構體就是一個可以包含不同資料類型的一個結構,它是一種可以自己定義的資料類型,它的特點和數組主要有兩點不同:首先結構體可以在一個結構中聲明不同的資料類型,;第二相同結構的結構體變數是可以相互賦值的,而數組是做不到的,因為數組是單一資料類型的資料集合,它本身不是資料類型(而結構體是),數組名稱可看作常量指標,所以不可以做為左值進行運算,所以數組之間就不能通過數組名稱相互複製了,即使資料類型和數組大小完全相同。由於結構體本身就是自訂的資料類型,定義結構體變數的方法和定義普通變數的方法一樣。
Time of Update: 2018-12-04
昨天被問了個很基礎的C語言的問題。寫出u8 * memcpy(u8 * src, u8 * dst, size_t len)的定義。比較緊張,以為要考慮很多東西;於是,將很多亂七八糟的情況考慮了下。一般寫成void *,強制轉換成8bit的類型。事實上,由於這裡使用unsigned
Time of Update: 2018-12-04
被問到如下問題:給定一個結構體中某個變數地址,可否得到結構體變數的地址?答案是可以,但是對不同的場合有不同的結果;這與微處理器平台、編譯器的處理不可分割。首先,對於處理器,大尾端、小尾端的因素必須考慮;其次:一、ANSIC標準中並沒有規定,相鄰聲明的變數在記憶體中一定要相鄰。為了程式的高效性,記憶體對齊問題由編譯器自行靈活處理,這樣導致相鄰的變數之間可能會有一些填充位元組。對於基礎資料型別 (Elementary Data Type)(int
Time of Update: 2018-12-04
看到一個比較初級的問題,4個欄位的ip,如何排序?分析:排序是按每個欄位的整數值進行,而整個ip地址是字串型,故需要逐個欄位讀取。注意到每個欄位0~255,可以用一個位元組表示,而要比較大小,故用unsigned char型。讀取後,最自然的想法是逐個欄位比較,依次比較4個欄位,這個可以分別對每個欄位調用排序。想到基數排序的原理,不妨以256作為基數實施基數排序。想到這裡,既然有這麼個特殊數字256,我們的欄位都是模256的餘數,可以將所有欄位按照所在位置乘以256的對應次冪;這樣得到一個整數,
Time of Update: 2018-12-04
”c++三人談“中看到惡魔曾經指出c++的編程範式可以分為ADT+PP,GP,OO三個方向。1、ADT+PPADT:abstract data type; 抽象資料類型 PP:procedure programme; 面向過程的編程範式 ADT+PP 就是說面向過程的編程範式+抽象資料類型,你可以理解為c++的前身:帶類的C。2、GPGP:泛型程式設計,GP(Generic
Time of Update: 2018-12-04
程式由指令和資料群組成,C語言程式亦是如此。開發人員在編寫程式的時候往往需要根據不同資料的特點以及程式需求來選擇不同的資料存放區方式,那麼在C語言中資料的儲存分為哪些方式呢?C程式大致來講可以分為四個資料區:常量區,靜態去,堆區,棧區。其中常量區儲存了未被作為初始化使用的字串常量和被const修飾的全域變數,其特點是只可被訪問不可被寫入,生命週期同程式的運行過程。靜態區儲存了全部的全域變數,和所有被static修飾的變數(包括全域和局部),其特點是生命週期很長(為一次程式的運行過程)並且只被初始
Time of Update: 2018-12-04
/*////////////////////////////////////////////////////////////////////////////// // 名 稱 (Unit Name): BiTree.h 二叉樹標頭檔 // 備 注 ( Remarks ): 包含檔案棧的地址:http://www.ourys.com/post/38.html, 包含檔案隊列的地址:http://www.ourys.com/post/38.html ////
Time of Update: 2018-12-04
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication1{ public partial class Form1 : Form