c – 整数溢出错误
发布时间:2020-12-16 10:42:27 所属栏目:百科 来源:网络整理
导读:这是我的OpenGL代码的一部分,我得到一个错误: struct Ball { float x; float y; float rot; float dir; bool rmv; Ball* next;};Ball* curBall;void addBall() { if (balls==NULL) { balls=new Ball; balls-next=NULL; curBall=balls; } else { curBall-nex
这是我的OpenGL代码的一部分,我得到一个错误:
struct Ball { float x; float y; float rot; float dir; bool rmv; Ball* next; }; Ball* curBall; void addBall() { if (balls==NULL) { balls=new Ball; balls->next=NULL; curBall=balls; } else { curBall->next=new Ball; curBall=curBall->next; curBall->next=NULL; } curBall->x=((float)rand()/(float)(RAND_MAX+1))*(ww-1) +1; curBall->y=((float)rand()/(float)(RAND_MAX+1))*(wh-1) +1; curBall->dir=((float)rand()/(float)(RAND_MAX+1))*(2*PI-1) +1; curBall->rot=((float)rand()/(float)(RAND_MAX+1))*(359) +1; curBall->rmv=false; } error : In function ‘void addBall()’: file.cpp:120: warning: integer overflow in expression file.cpp:121: warning: integer overflow in expression file.cpp:122: warning: integer overflow in expression file.cpp:123: warning: integer overflow in expression 解决方法
尝试在添加之前将RAND_MAX转换为浮点数.
curBall->x=((float)rand()/( ((float)RAND_MAX) +1))*(ww-1) +1; 等等. RAND_MAX通常等于INT_MAX,这是整数可以容纳的最大值,因此在它仍被视为整数时将其加1会将其推到整数限制之上. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容