Time of Update: 2018-12-03
P39, 左值和右值,書上說左值可以出現在等式的左邊或右邊,右值只能出現在等式的右邊。我的理解是如果變數的儲存位置是唯讀,那就認為是右值,如果是可讀可寫的,那就認為是左值。一個常量只能是右值,普通變數是左值,函數傳回值也只能是右值。P42,初始化,書上說直接初始化就是把初始化式子放在括弧中,複製初始化用等號,而且直接初始化的效率更高,這一點暫時無法理解。比如int main(){ int di(0xff); return 0;}翻譯成彙編是這樣的:08048544 <main&
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
C語言運算子另類分類法原文出自:劉建文 | 學術半·IT歌·文(http://arttech.us) 一般的C語言程式設計文本對C運算子的分類大概都是分為五大類:算術運算子、
Time of Update: 2018-12-03
一個好的環境,能讓你的工作事半功倍。下面是我個人對VC++6.0的環境配置,僅供拋磚引玉之用。2. 環境設定(Environment Settings) 此設定針對與所有工程有效。開啟目錄ToolsàOptions,在此作相應的設定。2.1 配置Tab鍵所佔的字寬 一般所來,Tab在各個程式中字寬為8,而VC預設把其設為4。我們將其改回8,好處是,當將代碼從VC複製到其它程式(如notepad)時,代碼不會變亂(不對齊)。2.2 配置代碼顏色
Time of Update: 2018-12-03
13.3 檔案的開啟與關閉 檔案在進行讀寫操作之前要先開啟,使用完畢要關閉。所謂開啟檔案,實際上是建立檔案的各種有關資訊,並使檔案指標指向該檔案,以便進行其它操作。關閉檔案則斷開指標與檔案之間的聯絡,也就禁止再對該檔案進行操作。在C語言中,檔案操作都是由庫函數來完成的。在本章內將介紹主要的檔案操作函數。 13.3.1 檔案的開啟(fopen函數) fopen函數用來開啟一個檔案,其調用的一般形式為: 檔案指標名=fopen(檔案名稱,使用檔案方式); 其中,
Time of Update: 2018-12-03
1.首先網上下個mingw32 windows下gcc的3.4版本 把它解壓到一個盤(如C,或者d,或者e盤),2 把你當前解壓的gcc/bin目錄增加到的系統path目錄下,假如你解壓到d盤,就把d:/gcc/bin目錄增加到你系統的path環裡3 如何編譯c,c++原始碼,假如你寫了一個hello.c檔案,如: #include<stdio.h> int main() //注意gcc環境下,main()函數必須返回一個int,不能返回void{
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
#include<stdio.h>char* strcpy(char* dest,const char* src); //字串拷貝char* strcat(char* dest,const char* src); //字串串連,返回dest字串char* strncat(char* dest, const char* src, int size);//把src前n個字串串連到dest,返回dest字串int strcmp(const char* src1,const
Time of Update: 2018-12-03
摘自『高品質c++編程』指標與引用,在More Effective C++ 的條款一有詳細講述,我給你轉過來 條款一:指標與引用的區別 指標與引用看上去完全不同(指標用操作符’*’和’->’,引用使用操作符’.’),但是它們似乎有相同的功能。指標與引用都是讓你間接引用其他對象。你如何決定在什麼時候使用指標,在什麼時候使用引用呢?
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
//注意指標數組和數組指標分別是如何指向二維數組的#include <stdio.h>main(){ static int m[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};/* 定義二維數組m並初始化*/ int (*p)[4];//數組指標 p是指標,指向一維數組,每個一維數組有4個int元素 int i,j; int *q[3];//指標數組 q是數組,數組元素是指標,3個int指標 p=m;
Time of Update: 2018-12-03
題目地址:http://poj.org/problem?id=2115#include<iostream>#include<cstdio>using namespace std;typedef long long inta;void extend_gcd(inta a,inta b,inta &x,inta &y,inta &gcd){ if(b==0) { x=1; y=0; gcd=a; }
Time of Update: 2018-12-03
結合Carbide.c++ Express配置命令列編譯環境Subject: Setting up command line build environment with Carbide.c++ Express結合Carbide.c++ Express配置命令列編譯環境TSS000617支援平台:S60 3rd Edition概敘:Carbide.c++
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
標題有點長,但還是能看明白的吧。最近做一個S60項目,需要自己設計清單控制項,捲軸和分頁都要從頭開始類比,比較頭疼。在做分頁時不免需要用到ceil()函數,而Symbian的Class Math沒有提供ceil()函數,於是只能藉助標準C。藉此機會說明一下如何在S60項目中使用標準C的庫函數。 1.SDK文檔中查知ceil:Location: libc/math.hceil()IMPORT_C double ceil(double); 2.開啟工程的mmp檔案,在SYSTEMINCLUDE
Time of Update: 2018-12-03
前天去陽江購書中心想買一些關於DirectX9相關的書,結果找遍整個書店也沒找到一本合適的。講遊戲開發的書倒是有幾本。去掉幾本大部分內容都在講遊戲本身的書後,我選擇了兩本書,一本就是現在正在讀的,書名看標題。另一本是Direct3D中的2D編程,不過是基於DX8.0的,而且很大篇幅都是講2D,其實也不錯,2D也是3D的基礎嘛。 昨天看了《Visual
Time of Update: 2018-12-03
sis是打包安裝檔案(需要pkg檔案,pkg裡有要打包的檔案清單和規則) 產生sis的過程是 :編譯+連結=目標檔案 --> makesis產生sis包 -->認證簽名=sisx包1.項目右鍵 -> properties -> carbide.c++ -> carbide build configuration -> sis builder -> add 在SIS Properties面板的PKG File添加
Time of Update: 2018-12-03
當我們的軟體大到一定程度的時候,就要考慮將軟體劃分為多個模組,從而降低軟體的複雜度以及複用部分資源。模組的主要表現形式有很多種,其中最常用的就是lib和dll檔案。下面簡單講一下lib和dll的產生和使用方法。