1- 與往常一樣,定義一個結(jié)構(gòu)體。
這一步,是最簡單直接的。所有會用的人都會定義。
2- 結(jié)構(gòu)體定義的數(shù)據(jù)化。
所謂數(shù)據(jù)化,就是將結(jié)構(gòu)體的每個成員的OFFSET、DATATYPE、NAME以及其他描述性的數(shù)據(jù),變成程序可以讀的數(shù)據(jù)。
我所想到的有兩種方法:
方法A:用一個類,通過解析結(jié)構(gòu)體定義文本的形式來生成這個數(shù)據(jù)。
這樣我們可以通過宏,在結(jié)構(gòu)體的定義上做一個hack。就像是打印出執(zhí)行的每一句代碼那樣的宏一樣使用#。
方法B:用一個類,通過手動初始化的方法,將成員的OFFSET、DATATYPE、NAME以及其他描述性數(shù)據(jù),設(shè)置進去。
這個方法是最簡單的,不過它增加了我們編碼時的復(fù)雜程度。
3- 用得到的結(jié)構(gòu)體數(shù)據(jù),在一段內(nèi)存上構(gòu)建、讀取和寫入結(jié)構(gòu)體。
這個就簡單了,你知道OFFSET和DATATYPE,就很簡單的讀寫了。
好處:
腳本化可以方便的使用字符串來讀寫數(shù)值。序列化反序列化,數(shù)據(jù)庫應(yīng)用等,都很方便。