Fandom

GCC Wikia

Narrowest signed type

1,550このwikiの
ページ数
新しいページをつくる
トーク0 シェアする

このページを編集する際は,編集に関する方針に従ってください. 編集

概要 編集

引数 編集

概要 編集

526 /* Ditto, but narrowest signed type.  */
527 static enum integer_type_kind
528 narrowest_signed_type (unsigned HOST_WIDE_INT low,
529                        unsigned HOST_WIDE_INT high, unsigned int flags)
530 {
531   enum integer_type_kind itk;
532 

  • flagを元に型を求める

533   if ((flags & CPP_N_WIDTH) == CPP_N_SMALL)
534     itk = itk_int;
535   else if ((flags & CPP_N_WIDTH) == CPP_N_MEDIUM)
536     itk = itk_long;
537   else
538     itk = itk_long_long;
539 
540 

  • 先ほど決めた型の調整

541   for (; itk < itk_none; itk += 2 /* skip signed types */)
542     {
543       tree upper = TYPE_MAX_VALUE (integer_types[itk]);
544       
545       if ((unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (upper) > high
546           || ((unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (upper) == high
547               && TREE_INT_CST_LOW (upper) >= low))
548         return itk;
549     }
550 
551   return itk_none;
552 }



リンク元

広告ブロッカーが検出されました。


広告収入で運営されている無料サイトWikiaでは、このたび広告ブロッカーをご利用の方向けの変更が加わりました。

広告ブロッカーが改変されている場合、Wikiaにアクセスしていただくことができなくなっています。カスタム広告ブロッカーを解除してご利用ください。

Fandomでも見てみる

おまかせWiki