当前位置: C语言 -- 标准库 -- <complex.h> -- CX_LIMITED_RANGE

CX_LIMITED_RANGE编译提示


概要:
#include <complex.h>
#pragma STDC CX_LIMITED_RANGE on-off-switch

描述:

由于对无限值的处理以及过度的溢出(overflow)和下溢(underflow),常用数学公式用于复数的乘法、除法以及绝对值运算时会出现问题。该编译提示用于通知实现,可以使用常用数学公式(此时该编译提示的状态为ON。)。


CX_LIMITED_RANGE编译提示指令可以出现在以下两个位置:

1、外部声明之外:编译提示指令的有效期从该指令开始直至编译单元结束或者遇到另一个CX_LIMITED_RANGE编译提示指令结束。

2、复合语句中所有显式声明和语句之前:编译提示指令的有效期从该指令开始直至复合语句结束或者遇到另一个CX_LIMITED_RANGE编译提示指令(包括在嵌套的复合语句中。)结束。复合语句结束后,编译提示的状态又会恢复到复合语句之前的状态。


该编译提示的默认状态是OFF

on-off-switch值必须是ONOFF或者DEFAULT之一。


该编译提示的目的是允许实现使用下述公式:

(x+iy)×(u+iv)=(xu-yv)+i(yu+xv)

(x+iy)/(u+iv)=[(xu+yv)+i(yu-xv)]/(u2+v2)

|x+iy|=x2+y2