Time of Update: 2018-12-03
C/C++支援比較低階的位元運算,在是眾人皆知的了。每本C/C++的教科書都會說到這部分的內容,不過都很簡略,我想會有很多人不知道位元運算用在什麼地方。這個文章就簡略說說位元運算的用處,更進一步的用法要大家自己去體會。而主要說的是操作標誌值方面。 /****************************************/#define BTI_MSK(bit) (1 << (bit))#define BIT_SET(x,bit) ((x) |= BTI_MSK (
Time of Update: 2018-12-03
在CSDN的BLOG中,看到這篇文章http://blog.csdn.net/housisong/archive/2007/04/27/1586717.aspx 裡面用C++實現的,現在我用C++複現了一下,希望以後用Python再實現。 假設對圖片上任意點 (x,y) ,繞一個座標點 (rx0,ry0) 逆時針旋轉 a 角度後的新的座標設為 (x', y') ,有公式: 先貼幾個檔案 imgtool.h #define PI 3.141592;#include
Time of Update: 2018-12-03
變數的定義分配了變數的儲存空間,並有可能賦一個初始值給變數,在程式中變數只能定義一次; (如int i; 或 int i=1;)變數的聲明主要聲明了變數名和變數類型,沒有分配空間定義也是一種聲明。當在定義一個變數時,我們指出了其名稱與類型。我們不能沒定義一個變數就使用extern來聲明它,在程式中可以聲明多次。 (如extern int i; extern int i;). 只要聲明存在初始值,就被認為定義,不管是否有extern(例:extern int i=2是定義)
Time of Update: 2018-12-03
在C#中定義常量的方式有兩種,一種叫做靜態常量(Compile-time constant),另一種叫做動態常量(Runtime constant)。前者用“const”來定義,後者用“readonly”來定義。 對於靜態常量(Compile-time constant),它的書寫方式如下:public const int MAX_VALUE = 10;為什麼稱它為靜態常量呢,因為如上聲明可以按照如下理解(注意:如下書寫是錯誤的,會出編譯錯誤,這裡只是為了方便說明)。public static
Time of Update: 2018-12-03
類與結構的執行個體比較 類與結構的差別 如何選擇結構還是類 一.類與結構的樣本比較: 結構樣本: public struct Person { string Name; int height; int weight public bool overWeight() { //implement something } } 類樣本: public class TestTime { int hours; int
Time of Update: 2018-12-03
前段時間在庫裡寫個error log. 建立檔案,直接寫個檔案名稱字,開啟。其實也預設到exe的當前路徑。 只是有些不放心這個檔案是否能真的開啟成功。畢竟沒有給絕對路徑。。。索性研究了下獲得當前路徑的用法。mfc等有他們自己的函數,我其實之前也用過,只不過忘掉 了。現在我的庫時win32的純c++寫出來的。他們用了個_getcwd,用的標頭檔#include <direct.h>代碼例子如下。 char Buf[1000]; int nLen =
Time of Update: 2018-12-03
一個很簡單的程式: view plaincopy to clipboardprint?#include "boost/python.hpp" int _tmain(int argc, _TCHAR* argv[]) { Py_Initialize(); PyRun_SimpleString("print 'hello'"); Py_Finalize(); system("pause"); return 0; } #include
Time of Update: 2018-12-03
1、#include<iostream>using namespace std;//-----------------------int hello(){ cout << "hello " <<endl; return 1;}int world(){ cout << "world " <<endl; return 3;}//=========================int main(){ cout <&
Time of Update: 2018-12-03
書上例子如下:1、//: C06:Nojump.cpp// From Thinking in C++, 2nd Edition// Available at http://www.BruceEckel.com// (c) Bruce Eckel 2000// Copyright notice in Copyright.txt// Can't jump past constructorsclass X {public: X();};X::X() {}void f(int i) { if(i &
Time of Update: 2018-12-03
快要找工作了,最近在狂看《程式員面試寶典》(第二版),中間有個題目,作者解釋錯了。更重要的是,裡面有個細節,導致我弄了好久才搞懂,現在拿出來分享下。下面是書中P37的原始碼:面試例題1: 下面程式的輸出結果是多少?#include<iostream>using namespace std;int main(){unsigned char a = 0xA5;unsigned char b = ~a >> 4;//cout << b;printf("b=%d\n"
Time of Update: 2018-12-03
1、關於建構函式1)用建構函式確保初始化對於一個空類class Empty {
Time of Update: 2018-12-03
定義const對象,一個用不可改變的變數代表一常數的解決辦法。非const變數預設為extern,要使const變數能夠在其它的檔案中訪問,必須顯式地指定它為extern。extern const bufSize=500;引用:int ival=1024;int &refVal=ival;const引用是指向const對象的引用。const int ival=1024;const int
Time of Update: 2018-12-03
關鍵段:CRITICAL_SECTION
Time of Update: 2018-12-03
數組形參void printValues(int*);void printValues(int[]);void
Time of Update: 2018-12-03
通過C++擴充, 可以用關鍵字__gc來聲明__gc數組,或者用託管類型來聲明數組。由於__gc數組被建立在託管堆上,所以它在聲明和使用上,和標準(非託管類型)數組相比,有其額外的標準與特點。__gc類型數組被動態建立於託管堆上,數組元素的數量不屬於它定義的內容,同一個陣列變數可以指向不同長度的數組。例如:System::Int32 arr[] = __gc new System::Int32[100];arr = __gc new
Time of Update: 2018-12-03
用C++些檔案拷貝程式遠遠比我想象的要困難的多,和C#僅使用的File類和Directory類相比,直接操作windows api更加有趣。這個過程讓我體會到的不僅僅是api,更多是編寫程式這一個過程的本質。先和大家分享一下My Code,還請各位C++前輩們指教。.h檔案#pragma once#include <string>#include "file.h"using namespace std;namespace Common{ namespace File {
Time of Update: 2018-12-03
1、常量資料地址減去基地址就是它的檔案中的位移地址。2、#define是一個真常量,而const卻是由編譯器判斷實現的常量,是一個假常量。使用const定義的變數,最終還是一個變數,只是在 編譯器內進行了檢查,發現有修改則報錯。3、#define與const的區別:#define編譯期間尋找替換,由系統判斷是否被修改,字串定義在檔案唯讀資料區,資料常量編譯為立即數定址方式,成為二進位代碼的一部分;
Time of Update: 2018-12-03
在標準的C++應用程式中,字串以ASCII格式編碼,而託管類型和應用程式卻不能處理ASCII字串。為瞭解決這個問題,託管的C++採用了將字串無需轉換,賦值給System::String類型的變數的方法。例如:String* s1 = "Hello String";String* s2 = L"Hello String";String* s3 = S"Hello
Time of Update: 2018-12-03
1、不帶正負號的整數所有位都是用來表示數值,沒有符號位;有符號整數最高位為符號位,如何判斷一段資料是有符號類型還是無符號類型,取決於要查看的指令或者已知的函數如何操作此記憶體。2、浮點數類型優點計算效率高,缺點儲存不靈活。3、浮點數操作是通過浮點寄存器來實現的,浮點寄存器是通過棧來實現的,由ST(0)~ST(7)組成。4、字串有兩種方法確實結束位址:儲存總長度、結束符’\0'。5、指標和地址之間的不同點: 指標
Time of Update: 2018-12-03
最近有時間,繼續學習C++,寫了一段遍曆檔案夾的代碼。拿出來希望大家指教。void Common::File::ReadFiles(const wstring &directory,const wstring & extentions, void (* fileMethod)(const wstring &)){ WIN32_FIND_DATA findData; ZeroMemory(&findData,sizeof(findData));//對fi