在 MFC, ATL 的源代码中充斥着 __declspec(selectany) 的声明。selectany 可以让我们在 .h 文件中初始化一个全局变量而不是只能放在 .cpp 中。
比如有一个类,其中有一个静态变量,那么我们可以在 .h 中通过类似:
" __declspec(selectany) type class::variable = value; "
这样的代码来初始化这个全局变量。
即使该 .h 被多次 include ,链接器也会为我们剔除多重定义的错误。
好处时对于 teamplate 的编程会有很多便利。
网友评论