RELIC ライブラリ (ドキュメントはこちらhttps://code.google.com/p/relic-toolkit/downloads/list )でそのように定義された型 (fb_t) を確認します。
#if ALLOC == AUTO
typedef align dig_t fb_t[FB_DIGS + PADDING(FB_BYTES)/(FB_DIGIT / 8)];
#else
typedef dig_t *fb_t;
#endif
(重要な場合align
は として定義されます)/* empty */
つまり、ポインタまたは配列です。しかし、配列の場合、この関数はどのように機能するのでしょうか? (からrelic-doc/html/df/d96/relic__fb__util_8c_source.html#l00080
)
void fb_copy(fb_t c, const fb_t a) {
for (int i = 0; i < FB_DIGS; i++) {
c[i] = a[i];
}
}
そして、それがポインターの場合、このコードはどのように機能しますか (それらは初期化されていないポインターであるため)?
//create two variables
fb_t source, target;
fb_copy(target,source); //and copy one to the other
どちらも同じコンピューターから実行されます。このsizeof(fb_t)
コンピュータの は 16 です。