Time of Update: 2018-12-03
步驟 5:建立共用庫檔案接下來,我們建立包含機器碼的共用庫檔案。大多數 C 和 C++ 編譯器除了可以建立機器代碼可執行檔以外,也可以建立共用庫檔案。用來建立共用庫檔案的命令取決於您使用的編譯器。下面是在 Windows執行的命令。Windows:使用visual studio commandprompt工具cl.execl -I"C:\Program Files\Java\jdk1.6.0_10\include" -I"C:\Program
Time of Update: 2018-12-03
對於一個c/c++程式員來說,記憶體流失是一個常見的也是令人頭疼的問題。已經有許多技術被研究出來以應對這個問題,比如Smart Pointer,Garbage Collection等。Smart Pointer技術比較成熟,STL中已經包含支援SmartPointer的class,但是它的使用似乎並不廣泛,而且它也不能解決所有的問題;Garbage
Time of Update: 2018-12-03
步驟 2:編譯 Java 代碼接下來,我們需要將 Java 代碼編譯成位元組碼。完成這一步的方法之一是使用隨SDK一起提供的Java編譯器javac。用來將 Java 代碼編譯成位元組碼的命令是:cd testjavac JNI_javaCallc_test.java 如果是在eclipse環境下編寫的以上代碼,檔案儲存時會自動在工程目錄的bin下產生以上java檔案步驟 3:建立 C/C++ 標頭檔第三步是建立 C/C++ 標頭檔,它定義本機函數說明。完成這一步的方法之一是使用
Time of Update: 2018-12-03
保證軟體只運行一次還是很有必要的,方法也很簡單,只要判斷進程中有無當前的進程名就可以了。對於WPF的軟體,在App.XAML.cs中判斷。重寫OnStartup方法就可以了。 public partial class App : Application { /// <summary> /// 只開啟一個進程 /// </summary> /// <param
Time of Update: 2018-12-03
當我們還在學校的時候學的最多的東西是編程的基礎知識,不論是C,C++,C#,Java等。當時我們並不能體會到學好那些文法有什麼好處,不明白為什麼計算1+1=2,還要去分析寄存器中放了什麼,移除了什麼,堆和棧如何變化的。不明白學匯流排,學編譯原理幹嘛。當時總想一口氣做出一個軟體來,認為這樣才是學會了編程。
Time of Update: 2018-12-03
C#如何讀取檔案前面說過了:http://blog.csdn.net/yysyangyangyangshan/article/details/6948327,下面以一個例子來說明如何按行讀取,其實很簡單,就是使用FileStream的ReadLine()方法。例如有這樣一個檔案test.txt,讀取出來顯示在一個richtextbox中,檔案內容如下:諾基亞 =N8摩托羅拉 =ME525+華為 =HONORHTC=A3366/T9299讀取方法為: public static
Time of Update: 2018-12-03
尋找List中的某個值,可以使用迴圈遍曆對比,尋找出結果。C#中提供了Find方法,可以直接使用,只要尋找條件傳入就可。如下: class Program { public static void Main(string[] args) { List<User> userCollection = new List<User>(); userCollection.Add(new User(1
Time of Update: 2018-12-03
C語言的段錯誤想必是每個人都遇到過,整理一下,以供學習之用。今天我執行了一個程式,運行了很長時間後,段錯誤了,我定位了一下,原來是fprintf的問題,具體是vfprintf的問題。Program received signal SIGSEGV, Segmentation fault. 0x0098735e in vfprintf () from /lib/libc.so.6調用棧為:#0 0x0098735e in vfprintf () from /lib/libc.so.6#1 0x0
Time of Update: 2018-12-03
最近在研究Android 2.3.3原始碼的C/C++層,需要對代碼進行一些調試,但是奇怪的是,直接添加LOGD("XXXXXXXX");,使用logcat卻看不到任何輸出,換成LOGI、LOGV、LOGW、LOGE也沒有效果。於是在網上尋找解決方案,經過幾次實驗,終於找到了,現在貼到下面備忘:第一步:在對應的mk檔案中加入:LOCAL_LDLIBS := -llog第二步:在要使用LOG的cpp檔案中加入:#include <android/log.h>#define LOGD(.
Time of Update: 2018-12-03
在iphone程式中會大量看到@selector這樣的用法。<<iphone開發基礎>花了很大一個篇幅來解析這個文法,但是不知是翻譯問題,還是解釋過細,不大看得懂,很是不給力.直到程式用這個文法,並且仔細看了一些解析文章。才明白這一文法。 簡而言之,你可以理解
Time of Update: 2018-12-03
13.3 檔案的開啟與關閉 檔案在進行讀寫操作之前要先開啟,使用完畢要關閉。所謂開啟檔案,實際上是建立檔案的各種有關資訊,並使檔案指標指向該檔案,以便進行其它操作。關閉檔案則斷開指標與檔案之間的聯絡,也就禁止再對該檔案進行操作。在C語言中,檔案操作都是由庫函數來完成的。在本章內將介紹主要的檔案操作函數。 13.3.1 檔案的開啟(fopen函數) fopen函數用來開啟一個檔案,其調用的一般形式為: 檔案指標名=fopen(檔案名稱,使用檔案方式); 其中,
Time of Update: 2018-12-03
1.在C語言中加了static 的變數或方法,表明這個變數或方法只能在本檔案代碼塊中訪問,外部的檔案無法訪問它(因為連結程式把它當作內部連結)static 變數存放在欄位存取區內(同理方法內部的static 變數也是存放在這,而不是存放在stack中,所以方法執行時,它只初始化一次).例如:static int value=20;static int fun();這種定義說明它們的存取權限只在本檔案塊內2.在C++中static
Time of Update: 2018-12-03
之前遇到一個問題:客戶要求他們的程式在PPC上安裝後程式名是中文的,但是當CAB打包時如果INF檔案包含有UNICODE就會有如下錯誤:Error: The INF file contains Unicode characters that could not be converted correctly to
Time of Update: 2018-12-03
在《深度探索C++物件模型》裡,有一個問題,也是去公司面試的時候那些技術人員常問的問題:在C++中,obj是一個類的對象,p是指向obj的指標,該類裡面有個資料成員mem,請問obj.mem和p->mem在實現和效率上有什麼不同。答案是:只有一種情況下才有重大差異,該情況必須滿足以下3個條件:(1)、obj
Time of Update: 2018-12-03
題目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1394注意要點: 1根本不需要真正構建出樹的結構 否則反而超記憶體由於最後的結果等於 w【i】*l【i】求和 換成加法 w【i】應該加層數那麼多次,而這樣的構建方式使根結點的權值恰好等於所有葉子節點權值之和(包括中間狀態)所以在每次建立新結點時,把新結點的權值加到最後的結果中去,那麼每個權值被加的次數等於它出於多少顆樹中,恰好等於它的高度2即使是weight
Time of Update: 2018-12-03
//input 8 12.61s consumed //input 8 11.72s consumed remove '-' in the printed array #include <stdio.h> #include <string.h> #include <stdlib.h> #define LENGTH 27 int n=0; void permute(int[],int,int); void swapint(int
Time of Update: 2018-12-03
linux下:ctrl-c 發送 SIGINT 訊號給前台進程組中的所有進程。常用於終止正在啟動並執行程式。ctrl-z 發送 SIGTSTP 訊號給前台進程組中的所有進程,常用於掛起一個進程。ctrl-d 不是發送訊號,而是表示一個特殊的二進位值,表示 EOF。ctrl-/ 發送 SIGQUIT 訊號給前台進程組中的所有進程,終止前台進程並產生 core 檔案。Key Function Ctrl-c Kill foreground process Ctrl-z Suspend
Time of Update: 2018-12-03
一個由c/C++編譯的程式佔用的記憶體分為以下幾個部分 1、棧區(stack)— 由編譯器自動分配釋放 ,存放函數的參數值,局部變數的值等。其操作方式類似於資料結構中的棧。 2、堆區(heap) — 一般由程式員分配釋放, 若程式員不釋放,程式結束時可能由OS回收 。注意它與資料結構中的堆是兩回事,分配方式倒是類似於鏈表,呵呵。 3、全域區(靜態區)(static)—,全域變數和靜態變數的儲存是放在一塊的,初始化的全域變數和靜態變數在一塊地區,
Time of Update: 2018-12-03
CFILES := $(wildcard *.c)#過濾部分c檔案filters := xx.cCFILES := $(filter-out $(filters),$(CFILES))TARGETS = $(patsubst %.c, %.cgi, $(CFILES))#組建目錄ODIR := ./# 編譯參數CFLAGS := -m32#連結參數LDFLAGS := -L/usr/local/ -lsqlite3 -lsybdb# 定義編譯規則define
Time of Update: 2018-12-03
from:http://hi.baidu.com/magicdemon/item/10434afd0b406419e3e3bd2cC++下基本類型所佔位元和取值範圍:符號屬性 長度屬性 基本型 所佔位元 取值範圍 輸入符舉例 輸出符舉例-- -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%usigned