关于typedef

关于typedef
今天在重看C++ primier3rd 时候,无意中看到typedef这节,发现有一个以前没注意的地方。
typedef  char   * CString;
// 下面这一句代表的意思与我想的不同
extern   const  CString cstr;

按照我的思路这应该是一个指向字符常量的指针,书上给的解释是这是一个指向字符的指针常量。


void  main( void )
{
    typedef 
char *CString;
    
const CString cstr;
}


结果:
main.cpp(
6 ) : error C2734:  ' cstr '  :  const   object  must be initialized  if  not  extern
main.cpp(
8 ) : error C2086:  ' cstr '  : redefinition


也就是说,cstr为一个常量,必须要初始化,否则无法编译。

你可能感兴趣的:(关于typedef)