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