KHPC ver.0.01の内部資料的なもの
基本仕様
- KHPCの2番目のバージョン。KHPCはpersistent-Cの簡易実装を目指したツール群。
- 基本方針: とにかくできるだけ手抜きをする。次のバージョンでまともにすればいい。手抜きは美徳である。
- このバージョンの目玉:「persistent命令」をサポートする。
ダウンロード
サンプルコード
#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;
}
ビルド方法
- pd-test.cの実体はこんな感じです。なーんだ、と言いたくなる内容かもしれません。
#define persistent
#include "test.c"
void persistent_def(void *p, int size, int grpId, const char *id);
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 char *tmp, const char *memo);
void persistent_default_test_c();
void persistent_default()
{
persistent_grp(0, "p-vars.pbd", "p-vars.pb_", "(local)");
persistent_default_test_c();
return;
}
- この persistent_default() は persistent_load(0); のタイミングで自動的に呼び出されます。
関数群
メモなど
こめんと欄