原创 Git 操作之回滾

用習慣了SVN,轉而使用Git,有很思維習慣是被固定,例如回滾一樣,操作步驟會比SVN多。 回滾有兩大類,第一類是不改寫歷史,第二類是改寫歷史。 第一類,方法1(推薦): git checkout commit_id # 回到歷史(回滾內

原创 Lua 源碼分析之String

因爲每一個源碼可能會有差別,現在基於lua 5.2.1來分析,保持一致性。從虛擬機的大體來看,字符串通過一個結構體存放在global_State裏,這個結構stringtable(lstate.h)是:GCObject(lstate.h)

原创 Lua userdata和lightuserdata

userdata和lightuserdata 可以讓C返回一個句柄給Lua,而Lua可以將句柄再通過在C中註冊的方法傳回C userdata: userdata通過Lua的API(lua_newuserdata())分配內存,就像C裏的m

原创 xcode中 Search Paths 和靜態庫的設置

使用xcode引用第三方庫的時候,一般會遇到配置路徑的問題,這兩個配置是Header Search Paths和 Library SearchPaths設置。 Header Search Paths: 頭文件搜索路徑設置 Library

原创 Visual Studio 設置指定調試exe的啓動路徑

遇到需要把修改exe的啓動路徑的情況(因爲我要調試的exe不在工程裏) 修改的方法:工程->右鍵->配置屬性->調試,把需要執行的exe路徑填上就可以了。 ‘ 由於使用Visual Studio比較少,不熟悉項目配置的屬性,特此記錄一

原创 浮點數的二進制表示(IEEE 754標準)

浮點數是我們在程序裏常用的數據類型,它在內存中到底是怎麼樣的形式存在,是我瞭解之前是覺得好神奇,以此記錄,作爲學習筆記。現代計算機中,一般都以IEEE 754標準存儲浮點數,這個標準的在內存中存儲的形式爲:對於不同長度的浮點數,階碼與小數

原创 xcode 同一個project裏 複製 多個target

在開發過程中,經常需要用到多個target去啓動程序,此時需要新建多個target。 新建target有兩種情況: 1.完全新建一個     1.菜單欄 -> File -> New -> Target     2.根據步驟去新建一個

原创 mysql 使用force index優化查詢

最近查詢數據庫的時候發現,一個簡單查詢語句,添加一個條件以後,查詢速度慢得不能接受,先直接看當時的情況。 數據庫的數據量有1億多條,數據量是比較大: 正常的查詢語句,是比較快地查詢出來,執行3個並列條件的語句,結果如下: mysql>

原创 C++嵌入lua腳本

現時遊戲開發裏比較多使用一門服務器開發語言 + 腳本作爲開發,在此僅記錄C++ 嵌入 Lua腳本的過程環境: Mac, 10.11.61. 下載lua-5.x.x,我使用的時候是5.3.3。2.  新建Xcode 項目3. 新建完項目後,

原创 xcode 修改默認工作目錄

修改Xcode默認工作目錄步驟: 1. 選擇: products->scheme > edit scheme 2.

原创 c++ string使用c_str轉換成const char*

在實現一個功能函數的時候,通過傳入一個int去一個map查找對應字符串並返回 做法是這樣: const char* Logger::GetLogHeader(int nLogLevel) { map<int, string>::iter

原创 libuv 之定時器的使用

libuv 定時器使用,一個定時器配合着一個回調函數,簡單方便,只管定時和時間到了的處理函數,libuv去到哪都是回調,精華所在。使用的API,主要是uv_timer_startuv_timer_start,參數有4個,分別是:timer

原创 xcode: linker command failed with exit code 1 (use -v to see invocation)

xcode裏,出現linker失敗,duplicate symbol _main的原因,我遇到的是兩種情況: 1.編譯的文件裏出現在了兩個main()函數 2.同一個main.cpp,即同一個target被兩個或兩個以上member

原创 使用libuv寫的tcp server

運行環境:OSX 10首次接觸libuv,根據官方文檔寫的一個demo,記錄一下server:#include <stdio.h> #include <stdlib.h> #include <string.h> #include <uv.

原创 在使用while(cin >> word)如何結束輸入

在練習時用while(cin >> word),輸入時,嘗試用ctrl+c,enter, space都不可以結束輸入,最後經過google才知道用ctrl+z,之後再用Enter結束,以此記錄。 #include <iostream> #