# signbit

< c‎ | numeric‎ | math

定义于头文件 `<math.h>` |  |
#define signbit(arg) /* implementation defined */ |  | (C99 起)

确定给定的浮点数 `arg` 是否为负。该宏返回整数值。

### 参数

arg | - | 浮点值

### 返回值

若`arg`为负，则返回非零整数值，否则返回​0​。

### 注意

此宏检测零、无穷大和 NaN 的符号。 signbit 是检验 NaN 符号的唯二可移植方式，另一方式是 copysign 。

### 示例

    #include <stdio.h>
    #include <math.h>

    int main(void)
    {
        printf("signbit(+0.0) = %d\n", signbit(+0.0));
        printf("signbit(-0.0) = %d\n", signbit(-0.0));
    }

可能的输出：

    signbit(+0.0) = 0
    signbit(-0.0) = 128

### 引用

- C11 标准（ISO/IEC 9899:2011）：

  - 7.12.3.6 The signbit macro (p: 237)

- C99 标准（ISO/IEC 9899:1999）：

  - 7.12.3.6 The signbit macro (p: 218)

### 参阅

fabs fabsf fabsl (C99)(C99) | 计算浮点值的绝对值（ \(\small{|x|}\)|x| ） (函数)
copysign copysignf copysignl (C99)(C99)(C99) | 从一个给定值的绝对值和另一个给定值的符号产生值 (函数)