关于ios的 (转载的)


是一个在C99引入的,标准C语言库提供的头文件。对于Fortran编写的数值软件,它向C语言提供更加简洁的接口。


固有函数接受不同类型的参数,并根据参数的类型返回对应类型的返回值。同时,Fortran中的普通函数(“外部函数”)的行为跟C语言中的函数类似,对类型要求严格(即函数参数的类型必须符合,返回值也是固定的)。举个例子,Fortran77提供了一个名为INT的函数,它能够接受Integer、Real、Double和Complex的参数,并总是返回Integer。另有一个名为SIN的函数,接受Real、Double和Complex的参数并返回相同类型的值。


某种意义上,这个特性帮了程序员不少忙,因为即使变量类型改变了,函数调用也不需要更改。另一方面,用户定义的函数不能像这样工作,因此这些附加的便利性只有在不调用用户定义函数的情况下才成立。



这个功能和其他特性在C99被整合进C语言,包含在在之前提到的中,目的是更好的支持数值计算。其中提供了三角函数和对数函数,舍入相关的函数和少数其它函数。这个头文件定义了一系列宏,覆盖了中已有的一些函数;例如,cos宏在参数是double的时候表现得像cos函数一样,参数是float时像cosf,参数是long double时像cosl,double _Complex时像ccos,参数是float _Complex时像ccosf,参数是long double _Complex时像ccosl。最终,如果参数是任何整形,宏调用cos函数,就像参数被隐式的转换为了double类型一样。


这个特性丑陋的第二个理由在于它试图模仿成函数,但是这个模仿不但不完美,甚至是非常危险的:如果你尝试着将泛型宏cos当成一个参数传递给函数,而事实上它总是被当做对应double的cos函数,因为cos后面不紧跟一个左括号的话宏根本不会展开。

你可能感兴趣的:(关于ios的 (转载的))