Mercurial > hg > Papers > 2017 > mitsuki-thesis
diff presen/slide.html @ 24:37f6991465b0
update
author | mir3636 |
---|---|
date | Thu, 16 Feb 2017 08:03:49 +0900 |
parents | c8bfa1f18b9e |
children | 327435666caa |
line wrap: on
line diff
--- a/presen/slide.html Thu Feb 16 07:29:34 2017 +0900 +++ b/presen/slide.html Thu Feb 16 08:03:49 2017 +0900 @@ -87,7 +87,7 @@ <!-- === begin markdown block === generated by markdown/1.2.0 on Ruby 2.2.0 (2014-12-25) [x86_64-darwin13] - on 2017-02-16 07:29:20 +0900 with Markdown engine kramdown (1.9.0) + on 2017-02-16 08:03:24 +0900 with Markdown engine kramdown (1.9.0) using options {} --> @@ -204,6 +204,25 @@ goto clearSingleLinkedStack(context, stack, next); } </code></pre> +<p lang="impl"># interface の記述 +- interface を記述することで Context を通して Code Gear が参照できるようになった。 +- create は関数呼び出しで呼び出され、interface と impliment の初期化と Code Gear のポインタの設定を行う。 +- return で interface を返し、その先で指定した Code Gear へ継続できるようになる。</p> +<pre><code>Stack* createSingleLinkedStack(struct Context* context) { + struct Stack* stack = new Stack(); + struct SingleLinkedStack* singleLinkedStack = new SingleLinkedStack(); + stack->stack = (union Data*)singleLinkedStack; + singleLinkedStack->top = NULL; + stack->push = C_pushSingleLinkedStack; + stack->pop = C_popSingleLinkedStack; + stack->pop2 = C_pop2SingleLinkedStack; + stack->get = C_getSingleLinkedStack; + stack->get2 = C_get2SingleLinkedStack; + stack->isEmpty = C_isEmptySingleLinkedStack; + stack->clear = C_clearSingleLinkedStack; + return stack; +} +</code></pre> </div>