ぺんぎんさんのおうち

日記です。たまに日記じゃないこともあります。

11.06.2020

バイクの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かな.