輝々凛々

ガンバるってことは、素晴らしい事だ。

scanfでdoubleは最悪。

ニ倍近く早いのです

今さらだけど、scanf/sscanf/fscanfを使ってfloat/doubleの値を読み込もうとすると、やたらめったら遅いのです。元データが整数値であるなら、intで読んでからdoubleにキャストするほうがニ倍近く早いのです(たぶん)。

サンプル

// before
for (i = 0; i < 100000; i++) {
  fscanf(fp, "%lf", &data);
}

// after
for (i = 0; i < 100000; i++) {
  int tmp;
  fscanf(fp, "%d", &tmp);
  data = (double)tmp;
}
関連記事

ツッコミの投稿


(ツッコミ非公開の場合はチェック)