2011年8月6日
摘要: 看到有一位同学在头文件中这么写:static const wchar_t* g_str1 = …static const wchar_t* g_str2 = …这种定义变量的方式我从来没有见过,而且它还能顺利通过编译,于是我很想知道编译器是如何处理这种变量定义的。定义全局变量时使用static,意味着该变量的作用域只限于定义它的源文件中,其它源文件不能访问。既然这种定义方式出现在头文件中,那么可以很自然地推测:包含了该头文件的所有源文件中都定义了这些变量,即该头文件被包含了多少次,这些变量就定义了多少次。假如将上面两行代码的static去掉,编译的时候就会出现变量重定义的错误,这进一步证实了上 阅读全文
posted @ 2011-08-06 13:43 Zplutor 阅读(28231) 评论(5) 推荐(7) 编辑