读书人

望代码有不明白的地方

发布时间: 2013-04-05 10:24:33 作者: rapoo

看代码有不明白的地方
#define PUT_INT_TO_BUFFER(_p_, _str_, _data_) { sprintf(_p_, "%s=%d\n", _str_, (int)random()%100); _p_ = _p_ + strlen(_p_); }
#define PUT_STR_TO_BUFFER(_p_, _str_, _data_) { sprintf(_p_, "%s=%s\n", _str_, (((int)random()%10)&1) ? "down" : "up"); _p_ = _p_ + strlen(_p_); }
这两个函数有什么作用?(int)random()%100)和(((int)random()%10)&1) ? "down" : "up")是干什么用的?_p_ = _p_ + strlen(_p_)又是干什么用的?
[解决办法]


(int)random()%100) //random似乎是个随机数函数。那就是获得0到100之间的随机数

(((int)random()%10)&1) ? "down" : "up")
//获取0到10之间的随机数,但若结果是奇数,结果是"down",偶数结果就是"up"。
//%10是多余的

[解决办法]
宏么,不就是两个sprintf么

_p_ = _p_ + strlen(_p_)就是把_p_设置为下一个NULL字符
[解决办法]
定义的函数 看不懂~
[解决办法]
(int)random()%100)这是个可以产生0-99的随机数,random()这个函数一般都和srand(time(0))一起用,后者作为随机数种子,也可以不用time(0) .

(((int)random()%10)&1) ? "down" : "up")这个是产生的随机数于1按位相与,如果结果为真就选down都则选up
[解决办法]
(((int)random()%10)&1) ? "down" : "up")这个地方确实是判断是奇数还是偶数,如果是奇数最后一位是1这个表达式就是XXXXXXX1&00000001;如果是偶数则最后一位是0这个表达式就是这样的XXXXXXX0&00000001结果就是0,0与任何数相与都是0

读书人网 >C语言

热点推荐