livcui 发表于 2020-7-29 14:36:09

说明符问题

记得书上说,在同一个声明中不能使用多个说明符(thread_local除外)。
C++ 里,如果在全局变量声明里加入 const 限定符,默认情况下链接性为内部,
所以,const = static const (也就是说,static 可加可不加)



但是,const 运算符前面可以加上另一个说明符,如 extern ,
extern const int c = 0;那么,根据 const = static const,
extern const = extern static const;

但是这不行,

虽然这没有意义,但为什么不可以使用 extern static 呢?


永恒的蓝色梦想 发表于 2020-7-29 14:36:10

livcui 发表于 2020-7-29 19:42
static 确实只能链接内部,但直接加 const 链接性也为内部,如果显式显示出来应该是 static const
并且...

const 默认是 static,但不一定是 static。
如果声明了extern,那么他就是 extern 的。
注意一下默认和相等的区别。

livcui 发表于 2020-7-29 18:42:06

别沉{:10_245:}

永恒的蓝色梦想 发表于 2020-7-29 18:54:25

static 连接内部,extern 链接外部,所以到底是内部还是外部?
所以不能一起用。

livcui 发表于 2020-7-29 19:42:05

永恒的蓝色梦想 发表于 2020-7-29 18:54
static 连接内部,extern 链接外部,所以到底是内部还是外部?
所以不能一起用。

static 确实只能链接内部,但直接加 const 链接性也为内部,如果显式显示出来应该是 static const
并且 extern const 是可行的,所以我想等于 extern static const
页: [1]
查看完整版本: 说明符问题