KHPC_v001doc01
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* KHPC ver.0.01の内部資料的なもの
-(by [[K]], 2016.05.19)
** 基本仕様
-KHPCの2番目のバージョン。KHPCは[[persistent-C>persistent...
-基本方針: とにかくできるだけ手抜きをする。次のバージョ...
-このバージョンの目玉:「persistent命令」をサポートする。
** ダウンロード
-http://khfdpl.osask.jp/download/khpc001a.zip
--ソースはTab=4を想定。
** サンプルコード
#include <stdio.h>
#include <khpc0.h>
persistent int i = 0, sum = 0;
persistent char str[16] = "hello, world";
int main()
{
persistent_load(0);
for (; i <= 100; i++) {
persistent_save(0);
sum += i;
}
printf("sum=%d\n", sum);
return 0;
}
** ビルド方法
-(1) prompt>mksrc test.c > pd-test.c を実行する。
--すると pd-test.c というファイルが生成される。
-(2) prompt>mksrc :PDEF test.c > pdef.c を実行する。
--すると pdef.c が生成される。
-(3) prompt>gcc -o test.exe -O3 -I. pd-test.c pdef.c khpc...
--これで出来上がり。
--gccでtest.cを指定する必要はないです。test.cの内容はpd-t...
--khpc0.cはライブラリです。
-(4) なんでこんなややこしい仕様なのかというと、分割コンパ...
prompt>mksrc prog0.c > pd-prog0.c
prompt>mksrc prog1.c > pd-prog1.c
prompt>mksrc prog2.c > pd-prog2.c
prompt>mksrc :PDEF prog0.c prog1.c prog2.c > pdef.c
prompt>gcc -o prog.exe -O3 -I. pd-prog0.c pd-prog1.c pd-...
--説明の都合上、プロンプトから入力するかのように書いてい...
~
-pd-test.cの実体はこんな感じです。なーんだ、と言いたくな...
#define persistent
#include "test.c"
void persistent_def(void *p, int size, int grpId, const ...
void persistent_default_test_c()
{
persistent_def(&i, sizeof(i), 0, "i");
persistent_def(&sum, sizeof(sum), 0, "sum");
persistent_def( str, sizeof(str), 0, "str");
}
-pdef.cの実体はこんな感じです。
void persistent_grp(int grpId, const char *path, const c...
void persistent_default_test_c();
void persistent_default()
{
persistent_grp(0, "p-vars.pbd", "p-vars.pb_", "(loca...
persistent_default_test_c();
return;
}
-この persistent_default() は persistent_load(0); のタイ...
** 関数群
-[[KHPC_v000doc01]]に準ずる。
** メモなど
* こめんと欄
#comment
終了行:
* KHPC ver.0.01の内部資料的なもの
-(by [[K]], 2016.05.19)
** 基本仕様
-KHPCの2番目のバージョン。KHPCは[[persistent-C>persistent...
-基本方針: とにかくできるだけ手抜きをする。次のバージョ...
-このバージョンの目玉:「persistent命令」をサポートする。
** ダウンロード
-http://khfdpl.osask.jp/download/khpc001a.zip
--ソースはTab=4を想定。
** サンプルコード
#include <stdio.h>
#include <khpc0.h>
persistent int i = 0, sum = 0;
persistent char str[16] = "hello, world";
int main()
{
persistent_load(0);
for (; i <= 100; i++) {
persistent_save(0);
sum += i;
}
printf("sum=%d\n", sum);
return 0;
}
** ビルド方法
-(1) prompt>mksrc test.c > pd-test.c を実行する。
--すると pd-test.c というファイルが生成される。
-(2) prompt>mksrc :PDEF test.c > pdef.c を実行する。
--すると pdef.c が生成される。
-(3) prompt>gcc -o test.exe -O3 -I. pd-test.c pdef.c khpc...
--これで出来上がり。
--gccでtest.cを指定する必要はないです。test.cの内容はpd-t...
--khpc0.cはライブラリです。
-(4) なんでこんなややこしい仕様なのかというと、分割コンパ...
prompt>mksrc prog0.c > pd-prog0.c
prompt>mksrc prog1.c > pd-prog1.c
prompt>mksrc prog2.c > pd-prog2.c
prompt>mksrc :PDEF prog0.c prog1.c prog2.c > pdef.c
prompt>gcc -o prog.exe -O3 -I. pd-prog0.c pd-prog1.c pd-...
--説明の都合上、プロンプトから入力するかのように書いてい...
~
-pd-test.cの実体はこんな感じです。なーんだ、と言いたくな...
#define persistent
#include "test.c"
void persistent_def(void *p, int size, int grpId, const ...
void persistent_default_test_c()
{
persistent_def(&i, sizeof(i), 0, "i");
persistent_def(&sum, sizeof(sum), 0, "sum");
persistent_def( str, sizeof(str), 0, "str");
}
-pdef.cの実体はこんな感じです。
void persistent_grp(int grpId, const char *path, const c...
void persistent_default_test_c();
void persistent_default()
{
persistent_grp(0, "p-vars.pbd", "p-vars.pb_", "(loca...
persistent_default_test_c();
return;
}
-この persistent_default() は persistent_load(0); のタイ...
** 関数群
-[[KHPC_v000doc01]]に準ずる。
** メモなど
* こめんと欄
#comment
ページ名: