c++这一句怎么解?
#defineNINT(a)((a)>=0.0?(int)((a)+0.5):(int)((a)-0.5))#define什么作用?NINT(a)是什么意思?>=:怎么回...
#define NINT(a) ((a) >= 0.0 ? (int)((a)+0.5) : (int)((a)-0.5))
#define什么作用?
NINT(a)是什么意思?
>= : 怎么回事? 展开
#define什么作用?
NINT(a)是什么意思?
>= : 怎么回事? 展开
4个回答
展开全部
#define 就是一个宏定义
NINT(a) 可简单的看作是一个宏定义一个函数,其参数为a;(只是为了方便理解才这样说的,实际上只是一个替换)
>= 是比较运算符,是比较 (a)与 0.0的大小的
?:是条件运算符 (a>b)? a:b 表示括号中的表达式为真则取a;若为假,则取b
所以这里实际上是对 括号中的a 根据情况做一定的增减
即先比较(a)与0.0 的大小,如果(a)大于等于0.0 那么就用问号后边的(int)((a)+0.5)来替换NINT(a);否则就用 冒号后边的 (int)((a)-0.5)) 来替换 NINT(a).
调用的时候 可采取一下调用方式:
b = NINT(5.5) : 5.5大于0.0,故原赋值表达式变为 b = (int)((5.5)+0.5) 即b的值为6
或者
b= NINT(-0.6) :-0.6小于0.0,故原赋值表达式变为 b = (int)((-0.6)-0.5) 即b的值为-1
NINT(a) 可简单的看作是一个宏定义一个函数,其参数为a;(只是为了方便理解才这样说的,实际上只是一个替换)
>= 是比较运算符,是比较 (a)与 0.0的大小的
?:是条件运算符 (a>b)? a:b 表示括号中的表达式为真则取a;若为假,则取b
所以这里实际上是对 括号中的a 根据情况做一定的增减
即先比较(a)与0.0 的大小,如果(a)大于等于0.0 那么就用问号后边的(int)((a)+0.5)来替换NINT(a);否则就用 冒号后边的 (int)((a)-0.5)) 来替换 NINT(a).
调用的时候 可采取一下调用方式:
b = NINT(5.5) : 5.5大于0.0,故原赋值表达式变为 b = (int)((5.5)+0.5) 即b的值为6
或者
b= NINT(-0.6) :-0.6小于0.0,故原赋值表达式变为 b = (int)((-0.6)-0.5) 即b的值为-1
展开全部
#define,在编译的时候只进行替换,而不进行类型检查;
NINT(a) 这个不知道啊
NINT(a) 这个不知道啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#define A B //就是用A替换B
第一句中用了 ? : ;这个
还有你就一段程序代码,NINT(a),怎么知道是什么意思?。
>=就是大于等于的意思
第一句中用了 ? : ;这个
还有你就一段程序代码,NINT(a),怎么知道是什么意思?。
>=就是大于等于的意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#define是一个宏定义,可以理解为定义的意思,#define NINT(a)可以理解为定义一个表达式,表达式的名称是NINT,a是表达式的参数,>=是大于等于的意思,整句话的意思是宏定义表达式NINT,参数是a,当a大于或等于0.0的时候返回(a)+0.5的整形值,如果a小于0.0的时候返回(a)-0.5的整型值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询