游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4109|回复: 4

glClearColor( 0.f, 0.f, 0.f, 1.f )中为什么用.f?

[复制链接]

5

主题

57

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2010-6-5 19:29:00 | 显示全部楼层 |阅读模式
glClearColor( 0.f, 0.f, 0.f, 1.f )中为什么用.f?,直接glClearColor( 0, 0, 0, 1 )不行吗? [em5]

0

主题

7

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2010-6-5 21:25:00 | 显示全部楼层

Re:glClearColor( 0.f, 0.f, 0.f, 1.f )中为什么用.f?

用整数型自然可以。。。不过默认是float格式,现在的编译器大都已经放弃了float格式。。一碰到就内置自动转换成double。。会产生额外的开销。。。故在后面加上f,就是让编译器别自作主张。。。

24

主题

256

帖子

267

积分

中级会员

Rank: 3Rank: 3

积分
267
发表于 2010-6-6 00:15:00 | 显示全部楼层

Re:glClearColor( 0.f, 0.f, 0.f, 1.f )中为什么用.f?

标准来说应该写成 glClearColor( 0.0f, 0.0f, 0.0f, 1.0f );

也就是说规定这个小数是32位的float浮点类型,如果不加f,则默认情况下编译器会把它当作64位的双精度double浮点数来处理。

老的显卡在硬件上不支持64位浮点。当然,你不加f也不会出错,只是浪费一点点内存空间罢了。

1

主题

266

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
发表于 2010-6-6 13:41:00 | 显示全部楼层

Re:glClearColor( 0.f, 0.f, 0.f, 1.f )中为什么用.f?

标准写法是0.0f
指示使用float型变量。
如果只写0,那么就是int型。
单纯写成小数,就像楼上说的, 编译器会默认为double型。

5

主题

57

帖子

57

积分

注册会员

Rank: 2

积分
57
 楼主| 发表于 2010-6-10 11:49:00 | 显示全部楼层

Re:glClearColor( 0.f, 0.f, 0.f, 1.f )中为什么用.f?

哦,谢谢楼上各位了^^
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-9 10:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表