バイクの6ヶ月点検の時期.今週は研究全く進んでない.全部大学が悪い.
11時起床.前日比-1
- mp_limb_t
#include <gmpxx.h>
#include <iostream>
int main() {
printf("sizeof(mp_limb_t): %u\n", sizeof(mp_limb_t));
printf("sizeof(uint64_t): %u\n", sizeof(uint64_t));
}
以下,-m32をつけた場合とつけない場合との実行結果の違い.コンパイル時に%u, %luについて警告が出るけど無視.
32 bits
sizeof(mp_limb_t): 4
sizeof(uint64_t): 8
64 bits
sizeof(mp_limb_t): 8
sizeof(uint64_t): 8
uint64_tのサイズが変わっていないのは想定通り(変わったら困る).一方でmp_limb_tはアーキテクチャによって変わる.32/64ビット環境の両方に対応させるなら気をつけないといけない.
たとえばlab-youth/ellipticCurve at master · ykm11/lab-youth · GitHub では32ビットアーキテクチャを想定していないので多分実行中に落ちる.セグフォは出ないと思う.出るならstack smashing detectedかな.