You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何`long long typedef ll`与`typedef long long ll`效果相同?

为什么long long typedef LL;在C++中能正常运行?

这其实是C++声明语法的特性——声明中的说明符顺序可以灵活调整。

在C++的语法规则里,typedef属于「存储类说明符」(和static、extern这类关键字归为一类),而long long是「类型说明符」。这两类都属于声明语法里的「说明符序列(decl-specifier-seq)」,序列里的各个说明符的顺序并不影响最终的声明效果。

也就是说:

  • typedef long long LL; 是把typedef放在类型说明符前面
  • long long typedef LL; 是把类型说明符放在typedef前面

这两种写法本质上是等价的,都是将LL定义为long long的别名。

之所以平时很少见到第二种写法,纯粹是因为大家约定俗成的编码习惯——通常会把typedef放在最前面,可读性更强。但从语法层面来说,这两种写法都是完全合法的。

内容的提问来源于stack exchange,提问作者Владимир Миленковић

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 19:52:01