- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
switch (c)
{
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
case '_':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
case 127: case 128: case 129: case 130: case 131: case 132:
case 133: case 134: case 135: case 136: case 137: case 138:
case 139: case 140: case 141: case 142: case 143: case 144:
case 145: case 146: case 147: case 148: case 149: case 150:
case 151: case 152: case 153: case 154: case 155: case 156:
case 157: case 158: case 159: case 160: case 161: case 162:
case 163: case 164: case 165: case 166: case 167: case 168:
case 169: case 170: case 171: case 172: case 173: case 174:
case 175: case 176: case 177: case 178: case 179: case 180:
case 181: case 182: case 183: case 184: case 185: case 186:
case 187: case 188: case 189: case 190: case 191: case 192:
case 193: case 194: case 195: case 196: case 197: case 198:
case 199: case 200: case 201: case 202: case 203: case 204:
case 205: case 206: case 207: case 208: case 209: case 210:
case 211: case 212: case 213: case 214: case 215: case 216:
case 217: case 218: case 219: case 220: case 221: case 222:
case 223: case 224: case 225: case 226: case 227: case 228:
case 229: case 230: case 231: case 232: case 233: case 234:
case 235: case 236: case 237: case 238: case 239: case 240:
case 241: case 242: case 243: case 244: case 245: case 246:
case 247: case 248: case 249: case 250: case 251: case 252:
case 253: case 254: case 255:
continue;
default:
phase1_ungetc (c);
break;
}
jackman 24.08.2009 08:40 # 0
Sauron 24.08.2009 11:09 # −5
guest 24.08.2009 12:55 # +1
Dimarius 25.08.2009 14:30 # 0
Говногость 25.08.2009 15:07 # 0
Dimarius 25.08.2009 15:33 # +1
Для char таблицу на все 256 значений сделать не проблема.
guest 25.08.2009 20:48 # 0
Dimarius 25.08.2009 21:37 # 0
if (c <= 255 && table[(char)c])
continue;
else
phase1_ungetc (c);
guest 26.08.2009 01:18 # 0
if(c>=127&&c<=255)
continue;
Также сделать и с диапазонами цифр и букв. :)
Dimarius 26.08.2009 08:24 # 0
nil 07.02.2010 11:03 # 0
guest 07.02.2010 12:23 # 0
guest 10.09.2009 00:29 # 0
nil 07.02.2010 11:07 # 0
Oleg_quadro 24.08.2009 14:18 # 0
guest 24.08.2009 15:26 # 0
guest 26.08.2009 01:13 # 0
guest 26.08.2009 01:19 # +1
<(o_O)>
<(0_O)>
guest 10.09.2009 00:29 # 0
guest 25.09.2009 00:05 # 0
guest 07.11.2009 18:10 # 0
nil 07.02.2010 11:08 # 0
guest 29.09.2009 23:39 # 0
В сях нельзя сделать индексирование на этапе задания данных типа bool isChar[]={'A'=true,'B'=true..} поэтому придется делать bool isChar[]={false,false,false...,true,true,false.. .} и следить за тем, на каком индексе стоят какие значение, либо делать на этапе инициализации bool isChar[256]; memset(isChar,0,sizeof isChar); isChar['a']=true;isChar['b']=true;...
В первом случае жуткий гемор, во втором куча лишнего кода (и столько же ручной копипасты).
Этот же вариант компилятор оптимизирует конструкцию в jmp-table или сравнения максимально эффективно, причем в зависимости от настроек оптимизации по размеру или по скорости сделает это по-разному.
pushkoff 30.09.2009 15:47 # 0
char array[10] = { [2] = 'a', [5] = 'b' };
guest 07.11.2009 18:12 # 0
stokito 15.01.2010 02:14 # 0
fasol8 07.02.2010 07:49 # 0
guest 17.03.2010 00:22 # 0