【サービス終了のお知らせ】
2025年4月20日(日)の20時をもちまして、favologのサービスを全て終了することとなりました。
「いいね」のログデータについては、PC版でログイン後の管理画面よりダウンロードすることが可能です。

ゆいのあ

@yuinore

  • いいね数 201,683/152,357
  • フォロー 1,173 フォロワー 1,253 ツイート 109,387
  • 現在地 大岡山
  • Web http://yuinore.net
  • 自己紹介 1日に1回、授業に出席します。(木曜日と休日を除く) #EveOneKokuban ヘッダーは増田さん(@hatune126)から。アイコンはLevia(@Iosif_S)さんに描いて頂きました。
Favolog ホーム » @yuinore » User » chokkanorg
«< 前のページ1のページ >»
並び順 : 新→古 | 古→新

2015年04月23日(木)

Naoaki Okazaki @chokkanorg

15年4月23日

printf関数は引数の順番を厳密に知る手段が無いが,書式文字列の通りに引数が渡されていると仮定し,浮動小数点型の1番目の引数を"%lf"で,整数型の2番目の引数を"%d"で整形する(整数型の1番目は書式文字列のアドレスで利用済み).

タグ:

posted at 00:33:10

   

Naoaki Okazaki @chokkanorg

15年4月23日

つまり,x64環境における関数呼び出しでは,整数型と浮動小数点型に分けて引数の順序を管理しており,互いの順序関係は関知しない.したがって,最初のコードの2つの関数呼び出しは同じ機械語に翻訳されるのは,仕様通り(正しい).

タグ:

posted at 00:32:54

   

Naoaki Okazaki @chokkanorg

15年4月23日

理由: 2件の関数呼び出しは同じ機械語になる
movl $.LC1, %eax
movl -4(%rbp), %edx
movsd -16(%rbp), %xmm0
movl %edx, %esi
movq %rax, %rdi
movl $1, %eax
call printf

タグ:

posted at 00:32:14

   

Naoaki Okazaki @chokkanorg

15年4月23日

// printfのヤバ過ぎる動作
main()
{
double d = 0.;
int i = 1;
printf("%lf %d\n", d, i);
printf("%lf %d\n", i, d);
}

出力
0.000000 1
0.000000 1

タグ:

posted at 00:31:53

   

«< 前のページ1のページ >»
@yuinoreホーム
スポンサーリンク
▲ページの先頭に戻る
ツイート  タグ  ユーザー

User

» More...

Tag

» More...

Recent

Archive

» More...

タグの編集

FRENZ_JP AE_OFF SaveCamp2017 EveOneMotion motiongraphics M_Fes pixiv FLASH_OFF 卒研配属説明会 艦これ

※タグはスペースで区切ってください

送信中

送信に失敗しました

タグを編集しました