GCC Wikia
Advertisement

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

概要[]

引数[]

  • const uchar *s
  • size_t len

実装[]

 79 /* Subroutine of cpp_classify_number.  S points to a float suffix of
 80    length LEN, possibly zero.  Returns 0 for an invalid suffix, or a
 81    flag vector describing the suffix.  */
 82 static unsigned int
 83 interpret_float_suffix (const uchar *s, size_t len)
 84 {
 85   size_t f = 0, l = 0, i = 0;
 86 

  • suffixを調べる

 87   while (len--)
 88     switch (s[len])
 89       {
 90       case 'f': case 'F': f++; break;
 91       case 'l': case 'L': l++; break;
 92       case 'i': case 'I':
 93       case 'j': case 'J': i++; break;
 94       default:
 95         return 0;
 96       }
 97 

  • エラーチェック

 98   if (f + l > 1 || i > 1)
 99     return 0;
100 

  • 虚数であるかないか、バイト数を論理和したものを返す

101   return ((i ? CPP_N_IMAGINARY : 0)
102           | (f ? CPP_N_SMALL :
103              l ? CPP_N_LARGE : CPP_N_MEDIUM));
104 }



リンク元

Advertisement