c – typedef是一个定义吗?
我真的很困惑.我正在阅读Bjarne Stroustrup的TC PL(特别版,第19版 – 2010年9月).让我引用这本书的一部分,突出我的困惑:
char ch; string s; int count = 1; const double pi = 3.1415926535897932385; extern int error_number; const char* name = "Njal"; const char* season[] = { "spring","summer","fall","winter" }; struct Date { int d,m,y; }; int day(Date* p) { return p->d; } double sqrt(double); template<class T> T abs(T a) { return a<0 ? -a : a; } typedef complex<short> Point; struct User; enum Beer { Carlsberg,Tuborg,Thor }; namespace NS { int a; }
double sqrt(double); extern int error_number; struct User; typedef complex<short> Point <-- WTF; 大胆的句子是不是与下面给出的列表冲突了? typedef只是一个声明还是一个定义?这是书中的错误吗? 解决方法
虽然我对此完全感到困惑.标准很清楚. Typedef只是一个声明.不定义.
编辑:哦,我才明白为什么.您可以键入一个声明,因此typedef必须是一个声明本身. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |