Hi,

At Tue, 21 Nov 2006 00:16:06 +0900,
Hugh Sasse wrote in [ruby-core:09594]:
> Ouch.  The only solution to that that I can think of would be
> to make the constant float, and add decimal places.  I've forgotten
> what happens about coercion in C ... After poking around the net a
> bit I think that would work, but it would still be horrid.  It would
> mean adding TEENY_TEENY or some such balderdash to the names.

It doesn't work in preprocessor.  Expression in C is not matter.

  $ echo -e '#if RUBY_VERSION_CODE > 185\nOK\n#else\nNG\n#endif' |
LANG=C gcc -E -DRUBY_VERSION_CODE=186 -
  # 1 "<stdin>"
  # 1 "<built-in>"
  # 1 "<command line>"
  # 1 "<stdin>"

  OK

  $ echo -e '#if RUBY_VERSION_CODE > 185\nOK\n#else\nNG\n#endif' |
LANG=C gcc -E -DRUBY_VERSION_CODE=185.1 -
  # 1 "<stdin>"
  # 1 "<built-in>"
  # 1 "<command line>"
  # 1 "<stdin>"
  <stdin>:1:5: floating constant in preprocessor expression



  NG

-- 
Nobu Nakada