@[zqy1018](/space/show?uid=11765)
是啊不然要define干什么呢,const int不是更好写吗
by Lolierl @ 2017-05-29 17:48:48
define是宏展开,只是编译时替换文本
const就是定义了一个常量,还是有内存中寻址的操作什么的
C++11新增的constexpr也很快,编译时求值
by pointedpoints @ 2017-05-29 18:14:44
最好是 'typedef', 'define'不会参与编译
by hellomath @ 2017-05-29 18:56:57
@[larryzhong](/space/show?uid=20438) typedef不行吧,它只是定义一种类型的别名,不能定义常数吧
by pointedpoints @ 2017-05-29 20:21:02
用个模板类装一个常数再typedef,或者用枚举
```cpp
template<typename T,T val>
struct constexpr_value{
operator T()const {return val;}
}
typedef constexpr_value<int,3> Three;
//或者
enum {Three=3};
```
不过缺点就是只能定义整数常量就是了
by gumi229 @ 2017-05-29 20:51:12
嘛...我也是因为被这个细节卡了很久的TLE所以才想问下的。
不过大概知道了,提升了一些姿势水平。
感谢楼上的诸位!
by zqy1018 @ 2017-05-29 23:21:01
果然,Orz常数帝们
改了以后就从50->100了
(手贱#define mod 49589 WA了一次)
by λᴉʍ @ 2017-09-11 08:52:24
稳如define比const int快
by 李寻欢 @ 2018-07-01 20:26:53
@[pointedpoints](/space/show?uid=33461) 貌似不用寻址吧?编译的时候全部都优化替换上去了
by guodong @ 2019-07-28 20:30:06
int 用寻址,const int 不用寻址
by guodong @ 2019-07-28 20:30:28