原创 回調函數的實質——什麼是回調函數,爲什麼要使用回調函數

在C/C++裏面,函數的概念很好理解,就是把某個任務獨立出來,封裝在一起,然後給它取個名字,它可以有參數和返回值。那麼,回調函數是個什麼鬼呢?它和函數到底有何異同?既然已經有了函數,爲啥還非要生出個回調函數來?想必,小夥伴們在剛碰到這個概

原创 C++插件架構淺談與初步實現

一、插件架構初步介紹     想到寫本博客,也沒想到更好的名字,目前就先命這個名吧。說到插件架構,或許大部分IT從業者都聽過或者某些牛人也自己實現過穩定高效的插件框架。目前有很多軟件以及庫都是基於插件架構,例如PS、我所在行業的GIS軟件

原创 C++裏面,什麼時候使用std::wstring

看你要使用什麼字符編碼了, std::wstring主要用於 UTF-16編碼的字符,而std::string主要用於存儲單字節的字符( ASCII字符集 ),但是也可以用來保存UTF-8編碼的字符。(UTF-8和UTF-16是UNICO

原创 C語言進階:第39課、程序中棧、堆、靜態存儲區

程序中的棧: 棧是現代計算機程序裏最爲重要的概念之一 棧在程序中用於維護函數調用上下文 函數中的參數和局部變量存儲在棧上 棧區有後進先出的行爲 棧保存了一個函數調用所需的維護信息 參數、返回地址、局部變量、調用上下文。。。 以棧的方式記錄

原创 thread線程的join和detach

detach調用之後,目標線程就成爲了守護線程,駐留後臺運行,與之關聯的std::thread對象失去對目標線程的關聯,無法再通過std::thread對象取得該線程的控制權。當線程主函數執行完之後,線程就結束了,運行時庫負責清理與該線

原创 XML是什麼,它可以做什麼?——XML詳解

舉幾個栗子說明一下。比如,我們要給對方傳輸一段數據,數據內容是“too young,too simple,sometimes naive”,要將這段話按照屬性拆分爲三個數據的話,就是,年齡too young

原创 C++11 中std::function和std::bind的用法

關於std::function 的用法:  可以理解成函數指針 : void printA(int a) { cout<<a<<endl; } std::function<void(int a)> func; func = p

原创 C語言進階:第31課:字符串典型問題分析

下面的程序輸出什麼,爲什麼? char buf[10] = {0}; char src[] = "hello %s"; snprintf(buf, sizeof(buf), src); printf("buf = %s\n"

原创 C語言進階:第33課、mian函數與命令行參數

C語言中main函數稱爲主函數,一個C程序是從main()函數開始執行。下面的main()函數定義正確嗎:上面四種寫法都是正確的!main()函數是操作系統調用的函數操作系統總是將main()函數作爲應用程序的開始操作系統將main()函