那个更好?

mrtan 2005-04-14 04:12:08
#define READWRITE_LENGTH 4*1024
#define READWRITE_LENGTH 4096


原因?
...全文
238 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
dzw2004 2005-05-10
  • 打赏
  • 举报
回复
有什么不一样?都一样吧
yates0 2005-05-09
  • 打赏
  • 举报
回复
two
ihsgnep 2005-05-09
  • 打赏
  • 举报
回复
这类宏要习惯加个括号
zhousqy 2005-05-09
  • 打赏
  • 举报
回复
当然是2
dot99 2005-05-09
  • 打赏
  • 举报
回复
是谁~~~~快结账。~~
jsjjms 2005-04-20
  • 打赏
  • 举报
回复
宏在程序中是傻瓜式的替换。

程序只会将遇到 READWRITE_LENGTH 的地方都换成了 1024*4

或者4096。(如果替换不好的话,会出现你调试不出来的错误)

所以如果非要用宏的话可以写成

#define READWRITE_LENGTH (1024*4)

括号的优先级最高。
bing_huo 2005-04-20
  • 打赏
  • 举报
回复
都不怎么样 放弃了类型安全 而且一旦编译期出现错误 只提示你 4096错了 不会有任何提示带出READWRITE_LENGTH 。。。。如果代码很多 天知道是哪来的4096

const 才是王道
greenteanet 2005-04-20
  • 打赏
  • 举报
回复
2好
dudu妈 2005-04-20
  • 打赏
  • 举报
回复
2好一些!
dudu妈 2005-04-20
  • 打赏
  • 举报
回复
后一个好
xuelong_zl 2005-04-20
  • 打赏
  • 举报
回复
来玩一会
ljq14 2005-04-14
  • 打赏
  • 举报
回复
1 有的时候会出错
比如在程序中有 a = 10000 / READWRITE_LENGTH;
如果用1的方式就会照原来的样子代入为 10000 / 4 * 1024
这样就会先计算 10000 / 4 再把结果乘 1024

而2则没有问题

所以再用的时候要这样写:
READWRITE_LENGTH 4096 或 READWRITE_LENGTH ( 4 * 1024 )
jacksonwj 2005-04-14
  • 打赏
  • 举报
回复
效率都差不多,但是2要安全一些,不知到楼主主要是在考虑哪一方面~~~
du51 2005-04-14
  • 打赏
  • 举报
回复
2好.
dongpy 2005-04-14
  • 打赏
  • 举报
回复
执行效率是一样的。

#define READWRITE_LENGTH (4*1024),表达式最好加上括号
whyglinux 2005-04-14
  • 打赏
  • 举报
回复
>> 有,但是只是在编译预处理期间 4*1024 要多花一点点点点时间计算,而且只计算一次。对运行效率没有任何影响。

错了。应该是用多少次就要计算多少次。想成const常量了。
whyglinux 2005-04-14
  • 打赏
  • 举报
回复
>> 难道就没有性能差异

有,但是只是在编译预处理期间 4*1024 要多花一点点点点时间计算,而且只计算一次。对运行效率没有任何影响。
mrtan 2005-04-14
  • 打赏
  • 举报
回复
难道就没有性能差异
SammyLan 2005-04-14
  • 打赏
  • 举报
回复
看一下这个结果
#define READWRITE_LENGTH1 4*1024
#define READWRITE_LENGTH2 4096
int i1=~READWRITE_LENGTH1;
int i2=~READWRITE_LENGTH2;
cout<<i1<<endl;
cout<<i2<<endl;

分数全部给我啦
healer_kx 2005-04-14
  • 打赏
  • 举报
回复
both are OK.
加载更多回复(11)

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧