Time of Update: 2018-12-04
http://blog.csdn.net/tianmo2010/article/details/8706495類型轉換機制:可以分為隱式類型轉換和顯示類型轉換,顯示類型轉換也稱為強制類型轉換(cast),有四種名字命名的強制類型轉換操作符:static_cast、dynamic_cast、const_cast、reinterpret_cast。隱式的類型轉換比較常見,在混合的類型運算式中經常發生。最簡單的為整型提升,對於所有比int小的整型,包括char、signed
Time of Update: 2018-12-04
本文來自http://blog.csdn.net/zxcred C++程式的複雜性很大一部分在於他的記憶體管理,沒有C#那樣的記憶體回收機制,記憶體管理對初學者來說很困難。經常會出現記憶體泄露的情況。那麼我們寫程式如何避免記憶體泄露呢?首先我們需要知道程式有沒有記憶體泄露,然後定位到底是哪行代碼出現記憶體泄露了,這樣才能將其修複。 本文描述了如何檢測記憶體泄露。最主要的是純C,C++的程式如何檢測記憶體泄露。 現在有很多專業的偵查工具,比如比較有名的BoundsCheck,
Time of Update: 2018-12-04
有人視宏為洪水猛獸,甚至要求完全從C/C++中摒棄,有人則認為宏為至尊寶典,在邏輯代碼中都大量使用。個人認為這是個仁者見仁智者見智的問題,摒棄就沒必要了,看看宏在MFC和ATL中的一些經典應用,你會發現如果不使用宏來實現一些訊息映射和對象映射神馬的那將讓“苦逼”程式員多花費多少寶貴的時間。當然也不能濫用,尤其是盡量不要在邏輯代碼中使用,宏中的邏輯出問題後,調試時候的痛苦你就真的會發現原來程式員真的挺“苦逼”的。 其實很多人對宏的“恐懼”可能源於下面的一個簡單的宏的實現: #d
Time of Update: 2018-12-04
淺談C/C++記憶體流失及其偵查工具2006.05.25轉載自:http://www.uml.org.cn/c%2B%2B/200605254.htm 對於一個c/c++程式員來說,記憶體流失是一個常見的也是令人頭疼的問題。已經有許多技術被研究出來以應對這個問題,比如Smart Pointer,Garbage Collection等。Smart Pointer技術比較成熟,STL中已經包含支援Smart
Time of Update: 2018-12-04
本文使用了Boost中有關Python的部分,並著重介紹如何用C++寫的函數或是類,並讓Python能調用。先看我們設計好的C++函數和類。#include <string>#include <windows.h>//定義一個函數void msgbox(const std::string& str){ MessageBox(0,str.c_str(),"msgbox",MB_OK);}//定義一個C++類class Hello{public: std:
Time of Update: 2018-12-04
1. 預設建構函式,賦值函數,預設複製建構函式ClassA a;預設建構函式a=b;賦值ClassA(const ClassA&
Time of Update: 2018-12-04
使用 DEF檔案從 DLL 匯出模組定義 (.def) 檔案是包含一個或多個描述 DLL 各種屬性的 Module 語句的文字檔。如果不使用__declspec(dllexport) 關鍵字匯出 DLL 的函數,則 DLL需要 .def 檔案。.def 檔案必須至少包含下列模組定義語句:檔案中的第一個語句必須是 LIBRARY 語句。此語句將 .def 檔案標識為屬於 DLL。LIBRARY 語句的後面是DLL 的名稱。連結器將此名稱放到 DLL 的匯入庫中。EXPORTS
Time of Update: 2018-12-04
1 標頭檔預定義 # ifndef __MY_TYPE_H__ #define __MY_TYPE_H__ ...........//omit #endif 前兩行是用來防止標頭檔被多次引用時重複定義而報錯。預定義的那個字元是一個唯一的標誌,它的命名規則為:寫成兩個底線加檔案名稱(檔案名稱的“ . ”用一個底線替換)加兩個底線的格式。這種宏定義是經常要用到的來控制碼是否被編譯的方法。2 volatile和idata關鍵字 volatile uint8
Time of Update: 2018-12-04
(隔段時間不看就會在實際使用中忘記掉---c語言數組、異或指標的使用),轉載一下,忘時供查詢 C語言處理數組的方式是它廣受歡迎的原因之一。C語言對數組的處理是非常有效,其原因有以下三點: 第一,除少數翻譯器出于謹慎會作一些繁瑣的規定外,C語言的數組下標是在一個很低的層次上處理的。但這個優點也有一個反作用,即在程式運行時你無法知道一個數組到底有多大,或者一個數組下標是否有效。ANSI/ISOC標準沒有對使用越界下標的行為作出定義,因此,一個越界下標有可能導致這樣幾種後果: (1)
Time of Update: 2018-12-04
//十進位轉二進位 Console.WriteLine(Convert.ToString(69, 2)); //十進位轉八進位 Console.WriteLine(Convert.ToString(69, 8)); //十進位轉十六進位 Console.WriteLine(Convert.ToString(69, 16)); //二進位轉十進位 Console.WriteLine(Convert.ToInt32(”100111101″, 2)); //八進位轉十進位
Time of Update: 2018-12-04
上文提到從v$Session查看串連數,發現使用串連池後莫名增加了MIN個串連(MIN為串連池的最小串連數)。但是實際上,v$session中看見的串連數是邏輯串連數,並非ORACLE的物理串連。ORACLE的會話與串連甚至可以不相關,允許存在沒有物理串連的會話。 因此,僅僅從v$session視圖看串連數是不準確的,至於從什麼地方可以看見用戶端與ORACLE的確切串連數。目前還沒找到。PRO*C的串連池特性,也只有通過效能測試來確定其有效性了。
Time of Update: 2018-12-04
1 字串分割string url = "[url]http://asdfsfd[/url][*]asdf[*]asdfsdf[*]";string[] sss = GetString(url,"[*]");foreach(string str in sss){Response.Write(str.ToString() +" ");}private string[] GetString(string str,string cutStr){char[] cutChar =
Time of Update: 2018-12-04
編碼中發現一個奇怪的編譯錯誤,花了很長時間才找到問題所在。下面把重現這個問題的最精簡的代碼貼出來:/**//*MyClass.h存在一個namespace和一個類*/#ifndef _MY_CLASS_H_#define _MY_CLASS_H_namespace MySpace...{class MyClass...{public: int Field;};}#endif 下面的一個檔案聲明一個全域的指標,因為僅僅指示聲明,所以盡量不包含其他檔案:/**//*global.
Time of Update: 2018-12-04
Pro*C中批量讀取遊標中的資料的時候,需要注意:最後一次批量讀取遊標中的資料的時候,資料被取到HostArray中,同時sqlca.sqlcode被置為1403(NO_DATA_FOUND)。如果在fetch後立即判斷sqlca.sqlcode的話,可能就導致最後一次的資料取不到。 保險的辦法是定義一個變數記錄上次的讀取條數:if (sqlca.sqlcode==1403 && sqlca.sqlerrd[2]<=nLastCount){
Time of Update: 2018-12-04
int i=atoi(m_strSendPeriod); //轉為整型SetTimer(1,m_strSendPeriod,NULL); ////////////////////////////////////////////////////////////////////// _itoa, _i64toa, _ui64toa, _itow, _i64tow, _ui64tow Convert an integer to a string. char *_itoa( int
Time of Update: 2018-12-04
今天看到了一道c#筆試題,是關於靜態欄位和靜態建構函式初始化的。靜態函數是c#新的特性,如果不知道它的初始化順序就會對這道題暈頭轉向。對於靜態建構函式可以參考http://www.cnblogs.com/michaelxu/archive/2007/03/29/693401.html。下來從這道筆試題來分析一下靜態建構函式的初始化順序。 1 class A 2 { 3 public static int X; 4 static A() 5 { 6 X =
Time of Update: 2018-12-04
一、什麼是對齊,以及為什麼要對齊: 1. 現代電腦中記憶體空間都是按照byte劃分的,從理論上講似乎對任何類型的變數的訪問可以從任何地址開始,但實際情況是在訪問特定變數的時候經常在特定的記憶體位址訪問,這就需要各類型資料按照一定的規則在空間上排列,而不是順序的一個接一個的排放,這就是對齊。 2. 對齊的作用和原因:各個硬體平台對儲存空間的處理上有很大的不同。一些平台對某些特定類型的資料只能從某些特定地址開始存取。其他平台可能沒有這種情況,
Time of Update: 2018-12-04
《Qt5 compile with vs2008》.pro+++++++++++++++++++++++++++++++++++++++++++++#-------------------------------------------------## Project created by QtCreator 2012-03-15T09:57:33##-------------------------------------------------QT += declarative
Time of Update: 2018-12-04
特註:運行該程式需要設定VC6.0環境Project->Setting->C/C++->Category->Code Generation->Using Run-time library->Debug MultiThreaded#include <iostream>#include <list>#include <windows.h>#include <process.h>using namespace std;
Time of Update: 2018-12-04
這個程式僅供編程參考若想在平時用,請下載微軟的wallpaper changer我這個程式實現了定時更換案頭背景的功能命令列 wallpaper "your images' directory path" time_in_minute 編程要點findfirstfile findnextfile 尋找影像檔SystemParametersInfo 修改系統資訊,在這兒當然是案頭背景註冊表操作 儲存資訊 如果做得實用,應加入開機啟動功能,自然還要gui//wallpaper.c//by