原创 cocos2d-x面試題合集

1、Cocos2d-x是怎樣實現跨平臺? AppDelegate 作爲跨平臺程序入口,在這之上做了另一層的封裝,封裝了不同平臺的不同實現。比如我們通常認爲一個程序是由 main 函數開始運行,那我們就去找尋,我們看到了在 proj

原创 計算struct的大小

結構體中的成員可以是不同的數據類型,成員按照定義時的順序依次存儲在連續的內存空間。和數組不一樣的是,結構體的大小不是所有成員大小簡單的相加,需要考慮到系統在存儲結構體變量時的地址對齊問題. struct stu1 { in

原创 有關內存的GetMemory()函數

void GetMemory(char* p) { p = (char*)malloc(100); } void Test() { char* str = NULL; GetMemory(str);

原创 C++保存json文件(使用jsoncpp庫)

首先我們要確定要保存json文件的格式,只有事先確定json文件的格式,才能構造它。 { "age" : 24, "array" : [ { "cancel" : "取消",

原创 頭文件中#ifndef/define/endif的作用

防止頭文件被重複引用,是格式如下: #ifndef _GAMEDATA_H_ #define _GAMEDATA_H_ class GameData { public: GameData(); ~GameData(

原创 DrawNode繪製幾何圖形

繼承關係 // 創建一個DrawNode Size visibleSize = Director::getInstance()->getVisibleSize(); DrawNode* drawNode = D

原创 編寫String的構造函數、析構函數、拷貝構造函數、賦值函數

函數原型 class String { public: String(const char* str = ""); ~String(); String(const String& other); S

原创 同步和異步的區別

在計算機領域,同步就是指一個進程在執行某個請求的時候,若該請求需要一段時間才能返回信息,那麼這個進程將會一直等待下去,直到收到返回信息才繼續執行下去;異步是指進程不需要一直等下去,而是繼續執行下面的操作,不管其他進程的狀態。當有消

原创 TCP連接中的三次握手四次揮手

建立TCP需要三次握手才能建立,而斷開連接則需要四次握手。整個過程如下圖所示: 三次握手 首先Client端發送連接請求報文,Server段接受連接後回覆ACK報文,併爲這次連接分配資源。Client端接收到ACK報文後也向Se

原创 Cocos2d-x 面試題解

1、Cocos2d-x是怎樣實現跨平臺? AppDelegate作爲跨平臺程序入口,在這之上做了另一層的封裝,封裝了不同平臺的不同實現。比如我們通常認爲一個程序是由 main 函數開始運行,那我們就去找尋,我們看到了在 proj.

原创 原碼、反碼、補碼詳解

一、機器數和真值 在學習原碼, 反碼和補碼之前, 需要先了解機器數和真值的概念. 1、機器數 一個數在計算機中的二進制表示形式, 叫做這個數的機器數。機器數是帶符號的,在計算機用一個數的最高位存放符號, 正數爲0, 負數爲1.

原创 TCP/IP、Http、Socket的區別

網絡由下往上分爲:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。 通過初步的瞭解,我知道IP協議對應於網絡層,TCP協議對應於傳輸層,而HTTP協議對應於應用層, 三者從本質上來說沒有可比性, socket則是對

原创 Lua根據秒數返回時間串00:00:00

Tools = {} -- 根據秒數返回時間串 function Tools:getTimeString(time) local hours = math.floor(time / 3600) local minu

原创 多線程

線程創建以及運行 #include <pthread.h> /* 創建子線程 * 函數名: pthread_create * 參數: * thread 保存新創建線程ID的變量地址值。線程與進程相同,也需要

原创 #include 和#include "filename.h"有什麼不同?

#include <filename.h> // 表示從當前開發環境所設定的目錄去尋找 <filename.h> 文件 #include "filename.h" // 表示從當前用戶工作環境所設定的目錄去尋找 "filename