前の画面〕 〔クリックポイント〕 〔最新の一覧〕 〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了

2825 re(5):intについて
2014/7/13(日)00:04 - 松田七美男 - 42-148-162-150.rev.home.ne.jp - 3809 hit(s)

引用する
現在のパスワード


たぶんそうですよね.Ver 4.6.5(たぶん仕様は4.4から変化してないでしょう)の
ソースから関連部分を拾ってみると.

standar.cにintの内部関数f_intの定義があって,

void 
f_int(union argument *arg)
{
struct value a;

(void) arg; /* avoid -Wunused warning */
push(Ginteger(&a, (int) real(pop(&a))));
}

f_intから呼び出される,Gintegerとrealがeval.cにあります.

struct value *
Ginteger(struct value *a, int i)
{
a->type = INTGR;
a->v.int_val = i;
return (a);
}


double
real(struct value *val)
{
switch (val->type) {
case INTGR:
return ((double) val->v.int_val);
case CMPLX:
return (val->v.cmplx_val.real);
case STRING: /* is this ever used? */
return (atof(val->v.string_val));
default:
int_error(NO_CARET, "unknown type in real()");
}
/* NOTREACHED */
return ((double) 0.0);
}

これだけみるとキャスト(int)により値が定まるといってよいでしょう.
キャストの実装を私は考えたことがございません.


〔ツリー構成〕

【2817】 intについて 2014/7/12(土)02:56 RK (390)
┣【2818】 re(1):intについて 2014/7/12(土)09:49 kakuto (177)
┣【2819】 re(2):intについて 2014/7/12(土)11:22 RK (160)
┣【2820】 re(2):intについて 2014/7/12(土)20:21 竹の (562)
┣【2821】 re(3):intについて 2014/7/12(土)20:44 松田七美男 (414)
┣【2822】 re(4):intについて 2014/7/12(土)22:10 kakuto (113)
┣【2824】 re(4):intについて 2014/7/12(土)22:58 竹の (283)
┣【2825】 re(5):intについて 2014/7/13(日)00:04 松田七美男 (1002)
┣【2826】 re(6):intについて 2014/7/13(日)00:17 松田七美男 (431)
┣【2827】 re(7):intについて 2014/7/13(日)00:31 松田七美男 (512)
┣【2828】 re(8):intについて 2014/7/13(日)18:17 竹の (396)
┣【2823】 re(3):intについて 2014/7/12(土)22:53 竹の (233)

前の画面〕 〔クリックポイント〕 〔最新の一覧〕 〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了

※ 『クリックポイント』とは一覧上から読み始めた地点を指し、ツリー上の記事を巡回しても、その位置に戻ることができます.