ctors2.c

来自「gcc-you can use this code to learn somet」· C语言 代码 · 共 70 行

C
70
字号
// GROUPS passed constructors// Message-Id: <m0p8Am6-0002fCC@neal.ctd.comsat.com>// Date: Fri, 10 Dec 93 11:33 EST// From: neal@ctd.comsat.com (Neal Becker)// Subject: serious problems with static constructors#include <stdio.h>#include <stdlib.h>#include <string.h>#define CONST constclass Sig {public:  enum Type { Byte_t, Word_t, Long_t, Float_t, Double_t, Complex_t, ComplexLong_t, Bad_t };private:  Type T;public:  static CONST char *ByteMagic, *WordMagic, *LongMagic,    *FloatMagic, *DoubleMagic, *ComplexMagic, *ComplexLongMagic, *BadMagic;  struct SigTable {    Type T;    CONST char* Magic;  };  static CONST SigTable sigTable[];};CONST char *Sig::ByteMagic = "BYTE",*Sig::WordMagic = "WORD",*Sig::LongMagic = "LONG",*Sig::FloatMagic = "FLOA",*Sig::DoubleMagic = "DOUB",*Sig::ComplexMagic = "COMP",*Sig::ComplexLongMagic = "CMPL",*Sig::BadMagic = NULL;CONST Sig::SigTable Sig::sigTable[] = {  { Byte_t, ByteMagic },  { Word_t, WordMagic },  { Long_t, LongMagic },  { Float_t, FloatMagic },  { Double_t, DoubleMagic },  { Complex_t, ComplexMagic },  { ComplexLong_t, ComplexLongMagic },  { Bad_t, BadMagic }};int main() {  if (strcmp (Sig::sigTable[0].Magic, "BYTE")      || strcmp (Sig::sigTable[1].Magic, "WORD")      || strcmp (Sig::sigTable[2].Magic, "LONG")      || strcmp (Sig::sigTable[3].Magic, "FLOA")      || strcmp (Sig::sigTable[4].Magic, "DOUB")      || strcmp (Sig::sigTable[5].Magic, "COMP"))    { printf ("FAIL\n"); return 1; }  else    printf ("PASS\n");}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?