如下代码: const static LPCTSTR g_szIPCCustomMsg = _T("{34F673E2-878F-11D5-B98A-00B0D07B8C7C}"); const static UINT g_wmScanPassword = RegisterWindowMessage(g_szIPCCustomMsg); 函数在函数体外定义是合法的。 解释: 静态对象和全局对象的初始化是在main函数执行之前进行的. 初始化(包括构造, 析构)对象的时候可以调用函数, 并且也就这一种情况可以在主函数外部调用函数. MFC里面不是有个全局变量theApp吗, 也是这样子. 另外,C语言只有规定过不能在函数体内定义函数,没有规定在函数体外不能调用函数,既然没有限制就是允许的!

评论