Time of Update: 2018-12-03
在C語言中使用wchar_t等寬字元顯示中文測試在長期的C語言編程中,我從未意識到使用中文帶來的不便,因為只要調用預設的printf語句即可,如:#include <stdio.h>int main(int argc, char *argv[]){ fprintf(stdout,
Time of Update: 2018-12-03
1.不用第三變數,交換兩個變數的方法: a = a ^ b; b = a ^ b; a = a ^ b; //( a ^ b ) ^ a == b或者 a = a + b; b = a - b; a = a - b;// (a + b) - a == b(註:以上兩種方法不適應浮點型變數,表示方法和精度的原因)2.計算一個變數裡‘1’的個數:f(char x){ for(int i=0; x; x &= x-1,i++); return i; }
Time of Update: 2018-12-03
在linux上寫程式、做網管的人,或多或少都會幾種指令碼。指令碼語言靈活的變數類型、強大的Regex處理能力,再加上linux系統本身的管道、重新導向以及豐富的命令列工具,讓你編程起來遊刃有餘。而C語言固然有種種優勢,但不可否認,很多場合下,用指令碼語言更為方便,比如我們將舉例說明的對設定檔的處理。先看看我們樣本程式的任務:假設我們有一個用c寫的程式,它有一個設定檔 user.conf,儲存了一些使用者資訊,user.conf定義如下:1)、以 # 開頭的行為注釋行,不做處理。2)、允許空行。3
Time of Update: 2018-12-03
原文出處:突破存取權限加入了一些自己的理解.我們在寫代碼的時候,按約定都是把成員資料放到private訪問區中,然後在通過相應的函數來存取。那又有什麼樣的代碼可以突破存取權限來直接操作類中private區段中的成員資料呢?首先,我們想到了指標,對吧~指標可是萬能之王,然而也是萬惡之源。那我們就先來看看指標如何突破馬其諾防線的。先定義一個測試類別class X{private: int m_nPrivate;public: X() : m_nPrivate(1) {
Time of Update: 2018-12-03
看了一下別人的文章,自己又整理了一下,貼上範例程式碼。這是A.h#ifdef __cplusplusextern "C"{#endifint printf_cpp();#ifdef __cplusplus}#endif這是A.cpp#include <iostream>using namespace std;extern "C"{int printf_cpp(void){ cout<<"c++
Time of Update: 2018-12-03
C++是一種物件導向的程式設計語言,我們常用它來進行物件導向的程式開發。但是,面向過程的語言如C是否可以進行物件導向的編程呢?答案是肯定的。C語言雖然沒有物件導向語言的諸多特徵,包括其核心特徵即封裝、繼承和多態,但是我們都知道,物件導向編程的實質其實是一種編程思維方式,跟使用的語言並無必然關係,但是使用物件導向的語言可以使程式員更好地實現這一思維方式。“
Time of Update: 2018-12-03
最近一直在做一個項目,主要是將原本symbian c++寫的工程移植為qt版本。這其中遇到N多問題,自己也鮮有總結,接下來幾篇文章就總結一下這其中的一些方法經驗和教訓,大家一起交流。 symbian發展到symbian3和symbian4之後:原本的symbian c++生存空間越來越小,而qt將最終成為主要的趨勢。所以原本很多用symbian c++寫的項目都面臨著一個問題:要麼最新版本全部推倒用qt重寫,要麼做移植。 可能很多人會說:symbian
Time of Update: 2018-12-03
該篇講一些移植項目進展中出現的問題: 1:我們移植出最初版本之後,別組同事拿去參考,於是他們也搭建了環境,拉下代碼,編譯也通過,但是emulator下案頭點擊表徵圖都沒反應,也不報錯,這原因何在?當在emulator中點擊運行一個程式結果毫無反應時:主要有以下幾個原因 ①缺相應的dll庫,也許你的工程要用到很多自己寫的dll庫,結果缺失或者拷貝不到位,導致exe無法找到,從而啟動不了。 ②版本不對,比如原本開發是用的qt-mobility1.0.2,
Time of Update: 2018-12-03
在學校學C的那會兒,就已經知道switch...case的執行效率要相對if...else較高了(大體上講),因為從字面上和邏輯上看,switch...case是不用像if...else那樣做一系列比較判斷就可以直接定位到相應的條件分支的。不過也沒有深究過其中的原理。後來由於一偶然原因,就明白了其中的細節。今日碰巧看到一篇blog,是講作者對此問題的思考,我覺得作者的理解大體上都是對的,不過下面跟帖的人,有人鄙夷,有人諷刺,實在是影響網容網貌,對作者本人也是沒有起碼的尊重,無法建立起平等的溝通,
Time of Update: 2018-12-03
#include<iostream>#include<string>#include<LIST>using namespace std;int main(){ //字串逆序// string string1;// int n,i,temp;// cin>>string1;// // n=string1.size();// // for(i = 0; i < n / 2; i++)// {// temp=string1[i]
Time of Update: 2018-12-03
看了書後,照著書上的方法一步一步去做,卻失敗了,555真是的,寫書的人啊,卻不考慮一下細節問題建立一個目錄[liu@liu-desktop hellomod]$mddir hellomod[liu@liu-desktop hellomod]$cd hellomod[liu@liu-desktop hellomod]$vi hellomod.c/****************hellomod.c*******************************/#include <linux/
Time of Update: 2018-12-03
先附解釋一下: void Reverse(LinkList *&h){if(NULL == h || NULL == h->next)return ;LinkList *p = h->next, *q = p->next;h->next = NULL;while(NULL != p){p->next = h->next;//讓新結點的next指向h的下一個結點,頭插p->prior = h;//把新結點鏈到h上,頭插完成p =
Time of Update: 2018-12-03
Know what functions C++ silently and calls 今天繼續學習一個條款,看到了本條款,讓我更加瞭解了C++的一些內部運行機理,思考了一番,覺得C++在這方面設計真的十分嚴密,不虧是一個很優秀的語言,讓C++一直是很受歡迎的語言。閑話少說。 每一個class都會有一個或多個建構函式、一個解構函式、一個copy
Time of Update: 2018-12-03
map<Key, Data, Compare, Alloc> map是一種關聯容器,儲存相結合形成的一個關索引值和映射值的元素。Map 是一種Pair Associative Container,意味著它的實值型別為 pair<const Key, Data>. 而且也是Unique Associative Container, 也就是任何兩個元素沒有相同的key值。map具有重要的屬性,就是在map對象中插入一個新元素不指向現有元素的迭代器失效。從map上刪除一個元素,
Time of Update: 2018-12-03
code不斷進步,在xcode4中引入了ARC的概念。您用或者不用它就在那裡,於是有了本文:如何在未使用arc的工程中引入一個使用了arc特性的檔案,如何在arc工程中引用未使用arc的檔案。其實說白了也很簡單就是在”Compile Sources”中對相應的檔案加入使用或者不使用arc的flagok,首選“Compile Sources”的位置:選中工程->TARGETS->相應的target然後選中右側的“Build Phases”,向下就找到“Compile
Time of Update: 2018-12-03
因為一些原因,我從一個用c++做背景程式的工作室轉到了用純C語言作為遊戲背景工作室, 而這兩套背景程式都可以號稱目前中國在角色扮演類遊戲中成熟的後台架構。。c++的架構我已經基本已經很清晰了,因為看了兩個月代碼。 而這套純C語言的是某網路遊戲公司幾個比較有名的後台,中國幾大國產遊戲都在用。 然後切實感受到了物件導向和結構語言之間的差異。。。。 物件導向更注重的設計,對象與對象的關係,是把遊戲中的實體都抽象出來為實體了。處理實體之間的訊息關係。 但是純c語言,因為沒有對象的概念,因此,就是以訊息
Time of Update: 2018-12-03
最近一致致力於linux下的C開發,因為老大是某訊出來的。因此,使用的主要技術都是某訊的基本的後台架構思想。在這段時間,學習到了很多,然後佩服某訊的技術果然很厲害。因此,自我感覺,從頭開發我們這個項目,到現在,跟著我這個大牛級的老大學到了不少東西。目前在遊戲裡的公會系統,任務系統,郵件系統,地圖,商城,等等很多大大小小的系統,都是由我來負責了。下面是我最近總結的一點點東西而已,以後還會更多1、.時間
Time of Update: 2018-12-03
Declare destructors virtual in polymorphic base classes 1、為什麼要申明虛函數
Time of Update: 2018-12-03
筆記一直再做項目,隨時都會用到一些函數和方法,現在屬於一種原始積累狀態,將來用到的時候就隨便拿來用。省時又省力。。後續還會很多這樣的方法。大家也可以去找找。 //取當前日期string getCurDate(){time_t nowtime;time(&nowtime); //取目前時間值struct tm *tPtr;tPtr = localtime(&nowtime);char dateStamp[32];ACE_OS::sprintf(dateStamp,
Time of Update: 2018-12-03
Make sure that objects are initialized before they're used. 昨天就已經把第四條款看完了,初始化這篇內容非常非常豐富,講解了很多,也讓我的一些疑惑解開了。由於經常加班,寫作時間比較少,我今天看寫完這篇文章,還要看下一條目,所以,我今天不能逐句的進行瞭解析,只能我覺得我認為比較重要的幾點點出來。也希望大家給點指正。變數的初始化關於"將對象初始化"這事,C++ 似乎反覆無常。如果你這麼寫: int