The function fails if one of the arguments is NaN. This causes an exception. To avoid this, C99 defines the macro isunordered (x, y), which determines whether the arguments are unordered, that is, whether at least one of the arguments is a NaN. The macro is guaranteed to evaluate the arguments only once. The arguments must be of real floating-point type. Note: Do not pass integer values as arguments to this macro because the arguments will not be promoted to real floating-point types.