File: mcpp-porting.html

package info (click to toggle)
mcpp 2.7.1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 8,024 kB
  • ctags: 29,151
  • sloc: ansic: 35,191; sh: 9,231; makefile: 176; cpp: 84; exp: 18
file content (1255 lines) | stat: -rw-r--r-- 117,188 bytes parent folder | download
1
2
3
4
5
6
7
8
9
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
  <style> pre {color: navy} tt {color: maroon} </style>
  <style> table {border-collapse: separate; border-spacing: 0px; empty-cells: show; background-color: #f0f0ff} </style>
  <style> th, td {text-align: left; padding-left: 15px; padding-right: 15px} </style>
</head>
<body>
<div align="center">
<h1>MCPP-PORTING</h1>
<h2>== How to Port MCPP ==</h2>
</div>
<div align="right">
<h4>for V.2.7.1 (2008/05)<br>
   (kmatsui@t3.rim.or.jp)</h4>
</div>
<div align="center">
<h2>== ܼ ==</h2>
</div>

<h4><dl><dt><a name="toc.1" href="#1">1. </a>
<dd><a name="toc.1.1" href="#1.1">1.1. ϣӤϤФʤ portable ʥ</a>
<dd><a name="toc.1.2" href="#1.2">1.2. Τ Standard C ⡼ɤ˲äƤ¾γƼ⡼ɤ</a>
<dd><a name="toc.1.3" href="#1.3">1.3. ΥɥȤɽˡ</a>
<br>
<br>
<dt><a name="toc.2" href="#2">2. </a>
<br>
<br>
<dt><a name="toc.3" href="#3">3. ƽϤ˰ܿˡ</a>
<dd><dl><dt><a name="toc.3.1" href="#3.1">3.1. ܿߤν: compiler-specific-build Υѥ</a>
<dd><a name="toc.3.1.1" href="#3.1.1">3.1.1. ɤνϤǤɬפ</a>
<dd><a name="toc.3.1.2" href="#3.1.2">3.1.2. FreeBSD / GCC V.2.*, V.3.*, V.4.*</a>
<dd><a name="toc.3.1.3" href="#3.1.3">3.1.3. Linux / GCC V.2.*, V.3.*, V.4.*</a>
<dd><a name="toc.3.1.4" href="#3.1.4">3.1.4. Mac OS X / Apple-GCC V.4.*</a>
<dd><a name="toc.3.1.5" href="#3.1.5">3.1.5. CygWIN / GCC V.2.*, V.3.*</a>
<dd><a name="toc.3.1.6" href="#3.1.6">3.1.6. MinGW / GCC V.3.*</a>
<dd><a name="toc.3.1.7" href="#3.1.7">3.1.7. LCC-WIN32 2003-08, 2006-03</a>
<dd><a name="toc.3.1.8" href="#3.1.8">3.1.8. Visual C++ 2002, 2003, 2005, 2008</a>
<dd><a name="toc.3.1.9" href="#3.1.9">3.1.9. Borland C V.4.*, V.5.*</a></dl>
<dd><a name="toc.3.2" href="#3.2">3.2. DECUS cpp бƤ</a>
<dd><a name="toc.3.3" href="#3.3">3.3. noconfig.H, configed.H, system.H</a>
<dd><a name="toc.3.4" href="#3.4">3.4. system.c</a>
<dd><a name="toc.3.5" href="#3.5">3.5. 饤֥ؿ</a>
<dd><a name="toc.3.6" href="#3.6">3.6. ɸإå</a>
<dd><a name="toc.3.7" href="#3.7">3.7. makefile  <b>mcpp</b> Ȥäꥳѥ</a>
<dd><a name="toc.3.8" href="#3.8">3.8. <b>mcpp</b> 򥳥ѥǤ</a>
<dd><a name="toc.3.9" href="#3.9">3.9. ѥ뤹ϤȥåȤν</a>
<dd><a name="toc.3.10" href="#3.10">3.10. MS-DOS νϡDJGPP </a>
<dd><a name="toc.3.11" href="#3.11">3.11. Compiler-independent-build Υѥ</a>
<dd><dl><dt><a name="toc.3.12" href="#3.12">3.12. Subroutine-build Υѥ</a>
<dd><a name="toc.3.12.1" href="#3.12.1">3.12.1. configure </a>
<dd><a name="toc.3.12.2" href="#3.12.2">3.12.2. noconfig/*.mak Ȥ</a>
<dd><a name="toc.3.12.3" href="#3.12.3">3.12.3. static library  shared library  DLL</a></dl>
<br>
<dt><a name="toc.4" href="#4">4. ƽϤ˰ܿˡܺ</a>
<dd><dl><dt><a name="toc.4.1" href="#4.1">4.1. noconfig.H, configed.H, system.H </a>
<dd><dl><dt><a name="toc.4.1.1" href="#4.1.1">4.1.1. PART 1 åȥƥ: compiler-specific-build</a>
<dd><a name="toc.4.1.1.1" href="#4.1.1.1">4.1.1.1. ޥ</a>
<dd><a name="toc.4.1.1.2" href="#4.1.1.2">4.1.1.2. Include ǥ쥯ȥ</a>
<dd><a name="toc.4.1.1.3" href="#4.1.1.3">4.1.1.3. ֹνϷ¾</a>
<dd><a name="toc.4.1.1.4" href="#4.1.1.4">4.1.1.4. Ϥθͤ˱</a>
<dd><a name="toc.4.1.1.5" href="#4.1.1.5">4.1.1.5. Multi-byte character</a>
<dd><a name="toc.4.1.1.6" href="#4.1.1.6">4.1.1.6. åȤȥۥȤ˶̤</a></dl>
<dd><a name="toc.4.1.2" href="#4.1.2">4.1.2. PART 2 ۥȥƥ</a>
<dd><dl><dt><a name="toc.4.1.3" href="#4.1.3">4.1.3. PART 3 <b>mcpp</b> ưͤ</a>
<dd><a name="toc.4.1.3.1" href="#4.1.3.1">4.1.3.1. Ƽư⡼</a>
<dd><a name="toc.4.1.3.2" href="#4.1.3.2">4.1.3.2. ư⡼ɤκλ</a>
<dd><a name="toc.4.1.3.3" href="#4.1.3.3">4.1.3.3. Translation limits λ</a></dl></dl>
<dd><a name="toc.4.2" href="#4.2">4.2. system.c</a>
<dd><a name="toc.4.extra" href="#4.extra">4.extra. malloc()</a>
<br>
<br>
<dt><a name="toc.5" href="#5">5. ХȰܿ</a>
<dd><a name="toc.5.1" href="#5.1">5.1. Хɤ</a>
<dd><a name="toc.5.2" href="#5.2">5.2. malloc() ϢΥХå</a>
<dd><a name="toc.5.3" href="#5.3">5.3. Х</a>
<dd><a name="toc.5.4" href="#5.4">5.4. ܿ</a>
<dd><a name="toc.5.5" href="#5.5">5.5. GCC ʳνϤǤ configure ξ</a>
<dd><a name="toc.5.6" href="#5.6">5.6. ǡäƤаܿƤߤޤ</a>
<dd><a name="toc.5.7" href="#5.7">5.7. ڥåȤˤ¾νϤΥƥ</a>
<dd><a name="toc.5.8" href="#5.8">5.8. Τո</a>
<br>
<br>
<dt><a name="toc.6" href="#6">6. <b>mcpp</b> ĹƻΤ</a>
<dd><a name="toc.6.1" href="#6.1">6.1. ۣǯ</a>
<dd><a name="toc.6.2" href="#6.2">6.2. V.2.3 </a>
<dd><a name="toc.6.3" href="#6.3">6.3. ̤Ƨեȥ¤ȡפ˺</a>
</dl>
<br>

<h1><a name="1" href="#toc.1">1. </a></h1>
<p><b>mcpp</b>  Martin Minow  DECUS cpp 򸵤 kmatsuiʾ ˤŪ˽ľåץץåǤ<b>mcpp</b> Ȥ̾ Matsui cpp Ȥ̣Ǥϥ󶡤ΤǡƽϤǻȤˤϡνϤ˹碌ƥ˼㴳ѹäǥѥ뤷ơ<b>mcpp</b> μ¹ԥץɬפޤ*1</p>
<p>ΥɥȤϥƽϤ˰ܿˡƤޤǤä¹ԥץưͤˤĤƤϡmcpp-manual.html Ȥޥ˥奢򻲾ȤƤ<br>
ΥɥȤϤ٤ƥץ󥽡եȥȤ󶡤ޤ<br>
<b>mcpp</b> ϼΤ褦ħäƤޤ</p>
<p>:</p>
<p>*1 <b>mcpp</b> V.2.6.3 ϥѥ뤺ߤβफΥХʥꡦѥå⼡ΥȤ󶡤褦ˤʤäΥɥȤǤϤˤϿʤХʥꡦѥåˤĤƤϤ web page 򻲾ȤΤȡ</p>
<blockquote>
<p><a href="http://mcpp.sourceforge.net/">http://mcpp.sourceforge.net/</a></p>
</blockquote>
<br>

<h2><a name="1.1" href="#toc.1.1">1.1. ϣӤϤФʤ portable ʥ</a></h2>
<p>Linux, FreeBSD, Windows ¿ΣϣӤ򥵥ݡȤƤ portable ʥץץåǤꡢΥ Standard C (ANSI/ISO/JIS C) νϤǤХѥǤ빭 portability äƤޤ饤֥ؿϸŵŪʤΤȤäƤޤ<br>
ƽϤ˰ܿ뤿ˤϡ¿ξ硢إåեΤĤΥޥؤƥѥ뤹ǤߤޤǰξǤ⥽ե˿Խ­٤Ǥ</p>
<p>Multi-byte characterʴˤνܤ EUC-JP, shift-JIS, ISO2022-JP GB-2312Ѥ Big-5ڹ KSC-5601 (KSX 1001) бƤꡢUTF-8 ȤޤShift-JIS, ISO2022-JP, Big-5 ξ硢ѥΤǧʤϤǤϡ<b>mcpp</b> 䤤ޤ</p>
<br>

<h2><a name="1.2" href="#toc.1.2">1.2. Τ Standard C ⡼ɤ˲äƤ¾γƼ⡼ɤ</a></h2>
<p>Standard C ư⡼ɤΤۤˡK&amp;R 1st. Υ⡼ɤ "Reiser" model cpp Υ⡼ɤ⤢ꡢˤϼ post-Standard ͤΥ⡼ɤޤǤޤC++ ΥץץåȤư¹Իץ⤢ޤ<br>
Standard C ⡼ɤϴ¸¿ΥץץåȰäơʤ˼ƤĤǤC90, C95, C99, C++98 Τ٤ƤбƤޤStandard C ץץ reference model ȤʤΤܻؤƺäƤޤεʤΥСϼ¹Իץǻꤹ뤳ȤǤޤ*1</p>
<p>ۤˤĤͭѤʳĥǽäƤޤޥŸ #if ɾȥ졼 #pragma MCPP debug ⤢ޤ&gt;إåե "pre-preprocess" ƤȤǤޤ<br>
ĤͭѤʼ¹ԻץƤޤ˥󥰤Υ٥ꤹ륪ץ䡢include directory ꤹ륪ץǤ<br>
ˤɤʴְ㤤äƤ <b>mcpp</b> ˽긫ʥåФꤻΤǤ狼䤹ǥåФŬڤʽ򤷤ޤܿȤʤˤĤƤٹȯޤ<br>
ʼǤʤ顢ɥŪŪʤƤߤޤ<br>
ܺ٤ʥɥȤ°Ƥޤ</p>
<p><b>mcpp</b> η򶯤Ƶ󤲤С®٤٤ȤǤGCC 3.*, 4.* / cc1 ٤ȣܤ飳ܤλ֤ޤBorland C 5.5 / cpp Ʊ餤®٤ǡإåե pre-preprocess εǽȤȤ⤦®ʤΤǡä٤ۤǤϤޤΤǤ뤳ȡportable ʥǤ뤳ȡʤǤư뤳Τˤϡ٤ν֤Ϥ򤨤ʤȹͤƤޤ</p>
<p>ʤץץå Standard C ٤ƥȤ뤿θڥåȤǤ "Validation Suite for Standard C Preprocessing"β⤪ӤȤäƥƥȤƼץץåκ cpp-test.html  <b>mcpp</b> ȤȤ˸Ƥޤ򸫤ȡStandard C פȾΤ¸Υץץåˤ¿꤬뤫狼ޤ*2</p>
<p>:</p>
<p>*1 øεʤȤƤ ISO/IEC 9899:1990 (JIS X 3010-1993) ĹȤƤ1999 ǯˤ ISO/IEC 9899:1999 򤵤줿ǤԤ C90Ԥ C99 ȸƤ֡Ԥ ANSI X3.159-1989 ܹԤΤʤΤǡ̤ˤ ANSI C ޤ C89 ȸƤФ뤳Ȥ⤢롣ޤISO/IEC 9899:1990 + Amendment 1995  C95 ȸƤ֤Ȥ롣C++ εʤ ISO/IEC 14882:1998 ӤǤǤ ISO/IEC 14882:2003 ǡξԤ򤳤Ǥ C++98 ȸƤ֡</p>
<p>*2  cpp  V.2.2 ޤǤñ cpp ȸƤǤ̤ cpp ʶ路ΤǡV.2.3  <b>mcpp</b> ȸƤ֤ȤˤΥɥȤǤ V.2.2 ޤǤΥС <b>mcpp</b> ȸƤ֡ޤΥɥȤ̾ V.2.2 ޤǤ cpp.doc ȤƤV.2.3  porting.txt ѹV.2.5  mcpp-porting.txt ѹ V.2.6.2  mcpp-porting.html ѹ伫Ȥ̾⡢V.2.2 ޤǤ Psycho ȤƤV.2.3  kmatsui ѹ</p>
<br>

<h2><a name="1.3" href="#toc.1.3">1.3. ΥɥȤɽˡ</a></h2>
<p>ΥɥȤϤĤƤϥƥȥեǤV.2.6.2  html եѤޤ<br>
ΥɥȤǤϼΤ褦˥եȤȤʬƤޤ</p>
<ul>
<li><tt style="color:navy">source</tt>:<br>
<tt style="color:navy"></tt>եȤϡ
ɤҤӥޥɥ饤Ϥ򼨤Τ˻Ȥޤ<br>
<li><tt>__STDC__</tt>:<br>
<tt style="color:maroon">꿧</tt>եȤϡɸޥӲ餫Υޥ򼨤Τ˻Ȥޤ<br>
<li><i>STD</i>:<br>
<i>Italic</i> եȤ <b>mcpp</b>  <samp>system.H</samp> ȤեޥɽޤΥɥȤǤϤ̾ <b>mcpp</b> μɽ뤿ˤȤޤΥޥ <b>mcpp</b> 򥳥ѥ뤹˻Ȥǡ<b>mcpp</b> μ¹ԥץˤ¸ߤƤʤȤդƤ<br>
</ul>
<br>

<h1><a name="2" href="#toc.2">2. </a></h1>
<ol>
<li>DECUS cpp  Martin Minow ˤäƺ졢1984/05  usenet / net.sources ǸޤDECUS ȤΤϡDEC Users' Society Ȥ DEC ҤΥԥ塼Υ桼롼פǤDECUS cpp  DEC  PDP-11 / RT11, PDP-11 / RSX, VAX / VMS, VAX / ULTRIX ΥƥΣøϤΤ˽񤫤줿åץץåǤܿɤƤΤǡ¾Υƥ˰ܿ뤳ȤŪưפǡꥸʥǤǤ⤹Ǥ DEC ʳΤĤ UNIX ƥбƤ褦Ǥ<br>
<br>
<li>䤬 <b>mcpp</b> νȯȤΤϡC Users' Group եǥ #243 ǤΥˤ뽤򸫤ȡԤˤǽ 85/06 ȤʤäƤޤθ塢ԤС󥢥åפ򤷤ƤȤäʹޤ<br>
<br>
<li>θ 88/12 ޤǤ˲ͤˤä MS-DOS ΤĤνϤˤܿޤCUG ΥǥäƤΤϤΥСǤ<br>
<br>
<li>ftp.oreilly.com/pub/examples/imake/DECUS-cpp.tar.gz ˤ⥽ꡢ time-stamp  93/02 ȤʤäƤޤºݤƤ CUG ΤΤŤ85/01 ΤΤǤʤ˴ޤޤƤ Martin Minow  README ˤȡΥץ public domain ȤʤäƤޤʤ README Τ 84 ޤ 85 ǯΤΤȻפˡ<br>
<br>
<li>89/04  Gigo ˤä OS-9/6x09  Microware C ˰ܿ줿Τ NIFTY-SERVE / FOS9 / lib 2 ϿƤޤ<br>
<br>
<li><b>mcpp</b> V.2 ϡ䤬򸵤Ū˽ľΤǤܿ򤵤˸夵Standard C ˴б뤿ᡢեʬλѤ¿Υޥɲäؿѿɲáʬ䡦񤭴̾˹ԤäƤޤ̤⥪ꥸʥǤΣܤˤʤäƤޤɥȤȸڥåȤϤ٤ơ䤬ޤä񤤤ΤǤ<br>
Ϥ򥪡ץ󥽡եȥȤƸޤ伫Ȥ DECUS Ȥϲδط⤢ޤ<br>
ʤꥸʥǤˤǿդƤޤ󤬡<b>mcpp</b> 椹ˤϡ DECUS cpp ȸƤ֤Ȥˤޤ<br>
<br>
<li>Standard C ΥޥŸμˡˤĤƤϡE. Ream  MS-DOS  PDS Ǥ CPP V.5.3 (1989/08, CUG #319) Υ⻲ͤˤޤΤۤGCC / cpp ư䡢J. Roskind  JRCPP ΥɥȤ⤤ĤμƤޤ<br>
<br>
<li><b>mcpp</b> V.2.0 ϸڥå V.1.0 ȤȤ 1998/08  NIFTY SERVE / FC / LIB 2 Ǹ졢٥ҤΥȤˤžܤޤ<br>
<br>
<li><b>mcpp</b> V.2.1 ϡV.2.0  C99 1998/08 draft б뤿νäΤǤڥå V.1.1 ȤȤ 1998/09  NIFTY SERVE / FC / LIB 2 ӥ٥ҤΥȤƱ˥ץɤޤ<br>
<br>
<li><b>mcpp</b> V.2.2  V.2.1  1998/07 ˷ޤä C++ Standard (ISO/IEC 14882:1998) б update ΤǤڥå V.1.2 ȤȤ 1998/11  NIFTY SERVE / FC / LIB 2 ӥ٥ҤΥȤƱ˥ץɤޤ<br>
<br>
<li><b>mcpp</b> V.2.3  V.2.2  C99 б update  Linux / GCC 2.95, GCC 3.2 ؤΰܿɲäơGCC / cpp Ȥθߴ夵ΤǤޤ¹ԻץɲäѹޤV.2.3 ǤϥɥȤαѸǤޤ<b>mcpp</b> °븡ڥåȤˤϡGCC / testsuite ΰȤƼưŪ˥ƥȤ¹Ԥ뤳ȤΤǤ edition ɲäޤ<br>
<br>
<li><b>mcpp</b>  V.2.3 γȯǡڥå V.1.3 ȤȤˡʵ(IPA) ʿǯ١̤Ƨեȥ¤ȡפ˿ ͵ץȥޥ͡ˤäƺ򤵤졢2002/07 - 2003/02 δ֤ IPA λȿУͤνΤȤ˳ȯʤޤѸǥɥȤ⤳ΥץȤǡͭ²ҡϥˤ˻䤬ȥƥäƤǤäΤǤΥץȤ cvs repository  ftp site Ѱդ졢V.2.3 Ϥ 2002/08  pre-release 1 2002/12  pre-release 2 2003/02 ˥꡼Ǥȯޤθ塢2003/03  V.2.3 patch 1 ФƤޤ*1<br>
<br>
<li><b>mcpp</b> Ϥʿǯ٤ˤ̤Ƨեȥ¤ȡפ˰  PM ˤäƷ³ƺ򤵤졢2003/06 - 2004/02 δ֤ IPA λȰϣУͤνΤȤ V.2.4 ؤ update Ȥʤޤơ2003/11 ˤ V.2.4 prerelease ȯޤΥСǤ Visual C++ 2003 ؤΰܿɲä졢ޤ<b>mcpp</b>  make ư configure ץȤޤʤ<b>mcpp</b> ϤޤΤʥ饤ɽ򤷤ƤޤǤλ BSD Υ饤ɽ򤹤褦ˤʤޤˡ2004/02 ˤϥ꡼ǤȯޤΥСǤ multi-byte character νĥޤޤѸǥɥȤϥܸǤ˹碌 update ޤ<br>
2004/03 ˤ <b>mcpp</b> V.2.4.1 ꡼ޤϺƵŪޥŸˡΤǤ<br>
<br>
<li>2005/03 ˤ <b>mcpp</b> V.2.5 ꡼ޤΥСǤϡ<i>POST_STANDARD</i> ȤѥΥ⡼ɤ <i>STANDARD</i> ⡼ɤˤμ¹ԻץΰĤȤƵۼ졢<i>OLD_PREPROCESSOR</i> Ȥѥ <i>PRE_STANDARD</i> ⡼ɤμ¹ԻץȤƵۼޤƵŪޥŸˡϺƽƴʤΤȤʤޤޤGCC V.3.3, 3.4 бǡ16 ӥåȥƥǤνϤ˴ؤɥȤ¿ޤ<br>
<br>
<li>2006/07 ˤ <b>mcpp</b> V.2.6 ꡼ޤΥСǤϡ<i>STANDARD</i> ⡼ɤ <i>PRE_STANDARD</i> ⡼ɤĤμ¹ԥץˤޤȤޤcompiler-independent-build λͤϽϤ˰¸ʤΤ˲ޤĤνϤοСؤбɲä줿ǡpre-C90 λͤνϤ˰ܿ뤿ϺޤMS-DOS Υѥؤΰܿޤν񤭴ʤΤˤʤޤϥɲäνϤäƤ⡢ʽ񤭴ȯʤߤǤ<br>
2006/08 ˤ <b>mcpp</b> V.2.6.1 ꡼ޤΥСǤϡMinGW ؤΰܿɲäޤΤۤХȤĤŪɤޤ<br>
2006/11 ˤ <b>mcpp</b> V.2.6.2 ꡼ޤΥСǤϡĤΥХȤȤˡƥȥեΥɥȤ html ѹޤޤJuergen Mueller  contribution ˤ subroutine-build ޤ<br>
2007/04 ˤ <b>mcpp</b> V.2.6.3 ꡼ޤΥСǤϡGCC-specific-build  GCC ȤθߴޤSubroutine-build Ǥ Greg Kress  contribution ˤäƥΥХåեؤνϤޤޤΥС󤫤餤ĤΥƥѤΥХʥꡦѥå󶡤褦ˤʤޤ<br>
2007/05 ˤ <b>mcpp</b> V.2.6.4 ꡼ޤ V.2.6.3 ΥХեåǤǤ<br><br>
<li>2008/03 ˤ <b>mcpp</b> V.2.7 ꡼ޤ
ޥ˴ؤ򥳥Ȥ˽񤭹ǽϤ֥ޥ⡼ɡ(macro notification mode) ȤΤ졢ɤʤޤΥ⡼ɤǤϡץץνϤ鸵ΥΥޥΰ֤Τ뤳ȤǤޤΥ⡼ɤ C/C++  refactoring tool Τ˼줿ΤǤ
ޤMac OS X / Apple-GCC ؤΰܿɲäޤ
Visual C++ 2008 ؤΰܿ⤵ޤ
GCC-specific-build Ϥ GCC ˶ᤤΤˤʤޤ
СΤĤΥХ⽤ޤ<br><br>
<li>2008/05 ˤ <b>mcpp</b> V.2.7.1 ꡼ޤ
 V.2.7 ΥХեåǤǡСΤĤΥХޤ
ޤUNIX ϥƥΥХʥꡦѥåϤ٤ shared library ޤ DLL ȡ󥯤¹ԥץ󶡤褦ˤʤޤ<br>
</ol>
<p>:</p>
<p>*1 ̤Ƨեȥ¤ȡ(Exploratory Software Project) γפϼΤȤΤ뤳ȤǤ롣</p>
<blockquote>
<p><a href="http://www.ipa.go.jp/jinzai/esp/">http://www.ipa.go.jp/jinzai/esp/</a></p>
</blockquote>
<p><b>mcpp</b> V.2.3  V.2.5 ޤǤϼΤȤ֤Ƥ</p>
<blockquote>
<p><a href="http://www.m17n.org/mcpp/">http://www.m17n.org/mcpp/</a></p>
</blockquote>
<p>2006/04 ˼ΤȤ˰ܤä
</p>
<blockquote>
<p><a href="http://mcpp.sourceforge.net/">http://mcpp.sourceforge.net/</a></p>
</blockquote>
<p>cpp V.2.2 ϥ٥ҤΥȤμΤȤˤ롣dos/prog/c Ȥǥ쥯ȥƤ뤬MS-DOS ѤǤϤʤ UNIX, WIN32/MS-DOS бƤ롣</p>
<blockquote>
<a href="http://www.vector.co.jp/soft/dos/prog/se081188.html">http://www.vector.co.jp/soft/dos/prog/se081188.html</a><br>
<a href="http://www.vector.co.jp/soft/dos/prog/se081189.html">http://www.vector.co.jp/soft/dos/prog/se081189.html</a><br>
<a href="http://www.vector.co.jp/soft/dos/prog/se081186.html">http://www.vector.co.jp/soft/dos/prog/se081186.html</a><br>
</blockquote>
<p>Υ֥եΥƥȥեϡVector ΤΤ DOS/Windows Ϥ˹碌ơԥɤ [CR]+[LF] shift-JIS  encode Ƥ롣SourceForge ΤΤ V.2.5 ޤǤ UNIX Ϥ˹碌Ʋԥɤ [LF] EUC-JP Ǥ롣V.2.6  [CR]+[LF] / shift-JIS  zip Ǥ [LF] / EUC-JP  tar.gz ǤΣΥ֥ե֤褦ˤ</p>
<br>

<h1><a name="3" href="#toc.3">3. ƽϤ˰ܿˡ</a></h1>
<p><b>mcpp</b> ΥϣܤΥإåեȣܤ *.c ե뤫ʤäƤޤϣӤϤ˰¸ʬ <samp>configed.H, noconfig.H, system.H, system.c</samp> ΣܤΥˤޤȤƤޤ<samp>configed.H</samp>  <samp>noconfig.H</samp> ȤƱ˻Ȥ뤳ȤϤʤɬɤ餫Ȥޤޤ饤֥ؿΰΣäˤ륽 <samp>system.c</samp> ˤޤäơ<b>mcpp</b> 򲿤餫νϤǻȤˤϡ˹碌ƤΥեѹäɬפޤ</p>
<p><b>mcpp</b> μ¹ԥץ build ˡ˱Ʋफޤ
Build ˡˤϼΣĤμޤ

<ol>
<li>stand-alone-build vs subroutine-build
<li>compiler-independent-build vs compiler-specific-build
</ol>
<ul>
<li><b>stand-alone-build</b>: ĤΥޥɤȤñΤưץץåǤ
ϤΥѥ顦ɥ饤ФƤӽФΤ⤢ޤ
<li><b>subroutine-build</b>: ¾Υᥤץ椫饵֥롼Ȥ
ɬפʤ鷫֤˸ƤӽФΤǤ
ˤĤƤ <a href="#3.12">3.12</a> ǽҤ٤ޤ</p>
</ul>
<ul>
<li><b>compiler-independent-build</b>: ϤΩưץץåǤ
¹ԻץʤɤλͤϽϤΤˤ餺Ǥ
ץץ뤳ȤǤޤϤΰȤư뤳ȤϤǤޤ*1<br>
¿ξ硢ѥ뤵̤ФΤǤñǤˤĤƤ <a href="#3.11">3.11</a> ǽҤ٤ޤ*2
<li><b>compiler-specific-build</b>: νϤΥץץåʤ⤷ǽʤؤ뤿ΤΤǤ
νϤѤλͤνϤѤΥǥ쥯ȥ˥󥹥ȡ뤵ޤ
</ul>

<p>ʲ 3.1 - 3.9 ǤϤ stand-alone  compiler-specific-build ޤGCC ǡסVisual C ѡɽƤΤϤ٤ơ줾 GCC-specific-build, Visual C-specific-build ΤȤǤ</p>
<p><b>mcpp</b> 򥳥ѥ뤹ˤϣĤˡޤĤ configure ץȤ¹Ԥơ<samp>config.h</samp> Ȥإåե Makefile ưˡǤȤñ make; make install ȤǤߤޤ<samp>configed.H</samp> ȤإåեϤξ˻Ȥޤconfigure  UNIX ϤΥƥ CygWIN, MinGW ǤȤޤ<br>
⤦ĤϳƽѤκʬեȤäƥإåեѹäɬפʤ餵˥إåեԽǡνѤ makefile Ȥä make ˡǤ<samp>noconfig.H</samp> ȤإåեϤξ˻Ȥޤʬե makefile  noconfig Ȥǥ쥯ȥˤޤConfigure λȤ륷ƥǤ⡢إåեľܡԽ뤳ȤǺ٤򤹤뤳ȤǤޤʬեϤǤ˰ܿߤνѤΤΤޤ<br>
ξϤǤϺʬեȤˡˤĤޤConfigure ˤĤƤ INSTALL 򸫤Ƥ</p>
<p>:</p>
<p>*1  V.2.6, V.2.6.1 Ǥ stand-alone-build ȸƤǤ
V.2.6.2  subroutine-build ǤΤȼäơƾΤѹ</p>
<p>*2 <b>mcpp</b> V.2.6.3  mcpp.sourceforge.net DzफΥХʥꡦѥå󶡤褦ˤʤäϤ٤ stand-alone  compiler-independent-build Ǥ롣</p>
<br>

<h2><a name="3.1" href="#toc.3.1">3.1. ܿߤν: compiler-specific-build Υѥ</a></h2>
<p>伫ȤưȤΤǤýϤϼΤΤǡΤˤ <b>mcpp</b> ܿƤޤʤΥ򥳥ѥǤ줿ץץå줾νϤξư뤳ȤǧƤޤ CPU  x86 ϤȤäƤޤ</p>
<blockquote>
<table>
  <tr><th>FreeBSD 6.3        </th><td>GCC V.3.4.6</td></tr>
  <tr><th>VineLinux 4.2      </th><td>GCC V.2.95.3, V.3.2, V.3.3.6, V.3.4.3, V.4.1.1</td></tr>
  <tr><th>FedoraLinux 8      </th><td>GCC V.4.1.2</td></tr>
  <tr><th>DebianLInux 4.0    </th><td>GCC V.4.1.2</td></tr>
  <tr><th>Mac OS 10.5        </th><td>GCC V.4.0.1</td></tr>
  <tr><th>CygWIN 1.3.10      </th><td>GCC V.2.95.3</td></tr>
  <tr><th>CygWIN 1.5.18      </th><td>GCC V.3.4.4</td></tr>
  <tr><th>MinGW (MSYS 1.0.11)</th><td>GCC V.3.4.5</td></tr>
  <tr><th>WIN32              </th><td>Visual C++ 2003, 2005, 2008</td></tr>
  <tr><th>WIN32              </th><td>Borland C++ V.4.0J, V.5.5J</td></tr>
  <tr><th>WIN32              </th><td>LCC-Win32 2003-08, 2006-03</td></tr>
</table>
</blockquote>
<p>νϤ <b>mcpp</b> 򥳥ѥ뤹뤿νϴñǡ<samp>noconfig.H</samp> οĤΥޥѹǤ</p>
<p>noconfig ǥ쥯ȥ *.dif Ȥե FreeBSD 6.* / GCC 3.4 Ѥ <samp>noconfig.H</samp> ƽѤ˽뺹ʬեǤVisual C++ 2005 ˤȤȡsrc ǥ쥯ȥ</p>
<pre>
patch -c &lt; ..\noconfig\vc2005.dif
</pre>
<p>Ȥȡޤpatch  UNIX ɸŪʥޥɤǡWindows ˤܿƤޤpatch ȤʤƤ⡢ʬե򸫤ƥǥǽƤ⤫ޤޤ</p>
<p>Include ǥ쥯ȥλʤɤϡʬեˤ뽤Ȥ̤ˡ桼ʬΥƥ˹碌ƽʤФʤޤ</p>
<p>ƽ򥳥ѥ뤹뤿γƽѤ makefile źդƤޤ<a href=#3.7>3.7</a> ȡˡ</p>
<pre>
copy ..\noconfig\visualc.mak Makefile
</pre>
<p>Ȥ src ǥ쥯ȥ˥ԡޤ</p>
<p>ʲκȤ src ǥ쥯ȥǹԤޤȤäǤʤ¤ꡢ<samp>noconfig.H</samp> νǤ</p>

<h3><a name="3.1.1" href="#toc.3.1.1">3.1.1. ɤνϤǤɬפ</a></h3>
<p>ʲΤɤνϤǤ⡢compiler-specific-build 뤿ˤϡ</p>
<pre>
#define COMPILER        INDEPENDENT
</pre>
<p>ȤʤäƤԤ</p>
<pre>
#define COMPILER        MSC
</pre>
<p>ȡνϤɽޥѹޤơ
</p>
<pre>
#define VERSION_MSG     "GCC 3.4"
</pre>
<p>ȤԤ򼡤Τ褦Ŭ񤭴ޤ
</p>
<pre>
#define VERSION_MSG     "Visual C 2005"
</pre>
<p><i>COMPILER</i>  make ΥץǾ񤭤뤳ȤǤޤ
㤨С</p>
<pre>
nmake COMPILER=MSC
nmake COMPILER=MSC install
</pre>
<p>Ȥޤʬե <samp>noconfig.H</samp> 񤭴ϡ
compiler-specific-build Τ⤽νѤ˽񤭴Τǡ<i>COMPILER</i> Ͻ񤭴ɬפϤޤmake  <i>COMPILER</i> ꤹ compiler-specific-build 졢ꤷʤ compiler-independent-build ޤ</p>
<p>ޤǥեȤ include directory ꤬ <samp>noconfig.H</samp> ΤΤȰۤʤϡ <i>C_INCLUDE_DIR1</i>, <i>C_INCLUDE_DIR2</i> Ȥޥ˽񤤤ƤޤC Ȱۤʤ C++ ͭ include directory ϡ <i>CPLUS_INCLUDE_DIR1</i>, <i>CPLUS_INCLUDE_DIR2</i>, <i>CPLUS_INCLUDE_DIR3</i> ˽񤭤ޤʤΥǥ쥯ȥϼ¹Ի˴Ķѿ -I ץǻꤹ뤳ȤǤˡ<samp>noconfig.H</samp> ꤹΤϽϸͭ include directory Ǥ<br>
Include directory ϤΤۤ<samp>system.c</samp> ǤꤵƤޤUNIX Ǹ <samp>system.c</samp> ꤵΤϤ OS-specific ʤΡ̾ /usr/includeˤȤ site-specific ʤΡ̾ /usr/local/includeˤǤWindows Ǥ <samp>system.c</samp> Ǥ include directory ϲꤵޤWindows Ǥ <samp>noconfig.H</samp> ǤǥեȤǤ include directory ꤵʤΤǡʬǽ񤯤ޤϴĶѿ INCLUDE, CPLUS_INCLUDE ǻꤹɬפޤ</p>
<p>ޤɬפʤ <i>CPU_STD1</i>, <i>CPU_STD2</i> Ȥ߹ߥޥ̾ѹޤ</p>
<p>Multi-byte character  encoding ϥǥեȤǤϡUNIX ϤǤ EUC-JPWindows Ǥ shift-JIS ȤƤޤɬפʤ <i>MBCHAR</i> Ȥޥ񤭴¾ encoding ѹޤMulti-byte character encoding ϼ¹Ի˴Ķѿץ#pragma ѹ뤳ȤǤˡ<br>
ϤˤäƤ shift-JIS  Big5  encoding бƤʤᡢmulti-byte character  '\\' Ʊ 0x5c ͤΥХȤ tokenization ǥ顼ˤʤ뤳ȤޤϤǤ <b>mcpp</b> üʽ򤷤ƥѥη٤䤤ޤˤĤƤ <a href="#4.1.1.5">4.1.1.5</a> 򸫤Ƥ</p>
<p>źդ makefile ˤĤƤϡ
BINDIR ȤѿǽϤΥХʥ֤Ƥǥ쥯ȥ񤭤ޤ</p>
<p>GCC V.3, V.4 Ǥϥץץѥ (cc1, cc1plus) ˵ۼƤޤäΤǡGCC-specific-build  <b>mcpp</b> Ȥˤϡgcc, g++ θƤӽФ shell-script ֤ơmcpp =&gt; cc1, mcpp =&gt; cc1plus νǼ¹Ԥ褦ˤʤФʤޤźդ makefile Ǥϡ</p>
<pre>
make COMPILER=GNUC
make COMPILER=GNUC install
</pre>
<p>Ȥȡ줬ưŪꤵޤܺ٤ <a href="mcpp-manual.html#3.9.7">mcpp-manual.html#3.9.7</a> 򸫤Ƥ
</p>

<h3><a name="3.1.2" href="#toc.3.1.2">3.1.2. FreeBSD / GCC V.2.*, V.3.*, V.4.*</a></h3>
<p> FreeBSD 6.*  GCC (GNU C) V.3.4.* ǥѥ뤷 
compiler-independent-build  <b>mcpp</b> ֤ˤʤäƤޤFreeBSD 6.* / GCC V.3.4.* Ѥ compiler-specific-build ˤϡ</p>
<pre>
#define COMPILER        INDEPENDENT
</pre>
<p>ȤʤäƤԤ</p>
<pre>
#define COMPILER        GNUC
</pre>
<p>Ȥơѥ뤹ФǤǤ
<i>COMPLIER</i>  make COMPILER=GNUC Ǿ񤭤뤳ȤǤޤ</p>
<p>GCC ¾ΥСǤС<i>VERSION_MSG</i> 
Ȥޥ</p>
<pre>
#define COMPILER_EXT_VAL    "3"
#define COMPILER_EXT2_VAL   "4"
#define COMPILER_CPLUS_VAL  "3"
#define GCC_MAJOR_VERSION   3
</pre>
<p>ȤʤäƤȤΥСֹѹޤ
<i>COMPILER_EXT_VAL</i>  GCC  major version number <i>COMPILER_EXT2_VAL</i>  minor version number 򤤤ʸƥǽ񤭤ޤ<i>COMPILER_CPLUS_VAL</i>  <tt>__GNUG__</tt> ޥͤǡ<i>COMPILER_EXT_VAL</i> Ʊˤʤޤ
ޤ<i>GCC_MAJOR_VERSION </i>  <i>COMPILER_EXT_VAL</i> Ʊͤͤǽ񤭤ޤ</p>

<p>FreeBSD ΥС 6.* ǤʤС</p>
<pre>
#define SYSTEM_EXT_VAL      "6"     /* V.5.*: 5, V.6.*:6    */
</pre>
<p>ͤѹޤ
</p>
<p> include directory  FreeBSD 6.* ɸȰäƤϡ
</p>
<pre>
#define CPLUS_INCLUDE_DIR1  "/usr/include/c++/3.4"
#define CPLUS_INCLUDE_DIR2  "/usr/include/c++/3.4/backward"
</pre>
<p>ȤʤäƤǥ쥯ȥѹޤ<i>CPLUS_INCLUDE_DIR3</i>, <i>C_INCLUDE_DIR1</i> 
ɬפ⤷ޤ</p>
<p>GCC V.2.7-2.95 ǤмΥޥ 
199409L ѹޤ</p>
<pre>
#define STDC_VERSION        0L
</pre>
<p>¾ UNIX  OS Ǥ⥳ѥ餬 GCC ǤС
ΥСɽ䡢include ǥ쥯ȥꡢϣӸͭȤ߹ߥޥꡢѤǤफ⤷ޤ<a href="#4.1.1">4.1.1</a> ȡˡ</p>

<h3><a name="3.1.3" href="#toc.3.1.3">3.1.3. Linux / GCC V.2.*, V.3.*, V.4.*</a></h3>
<p>Linux / GCC ǤϤޤ</p>
<pre>
#define SYSTEM      SYS_FREEBSD
</pre>
<p></p>
<pre>
#define SYSTEM      SYS_LINUX
</pre>
<p>ѹޤ
ơFreeBSD ξƱ褦ˡ<i>COMPILER, VERSION_MSG, COMPILER_EXT_VAL, 
COMPILER_EXT2_VAL, COMPILER_CPLUS_VAL, GCC_MAJOR_VERSION CPLUS_INCLUDE_DIR1, CPLUS_INCLUDE_DIR2, C_INCLUDE_DIR1</i> Υޥͤѹޤ</p>
<p>GCC 2.* Ǥ <i>STDC_VERSION</i> ͤѹˡ</p>
<pre>
#define COMPILER_SP3_VAL    "int"
</pre>
<p></p>
<pre>
#define COMPILER_SP3_VAL    "long int"
</pre>
<p>ѹޤ</p>
<p>include directory </p>
<pre>
gcc -xc -E -v /dev/null
g++ -xc++ -E -v /dev/null
</pre>
<p>ȤƳΤƤꤷƤ</p>
<p>noconfig ǥ쥯ȥ linux_gcc2953.dif, linux_gcc32.dif, 
linux_gcc336.dif, linux_gcc343.dif  FreeBSD 6.* / GCC V.3.4 ѤΥ VineLinux 4.0 / GCC V.2.95.3, V.3.2, V.3.3.6, V.3.4.3 Ѥ˽뺹ʬեǤ
ޤlinux_gcc412.dif  Debian 4.0 / GCC V.4.1.2 Ѥ˽ΤǤ
줾 compiler-specific-build ǤϤ <i>COMPILER</i> ѹޤDistribution ɸ GCC ɲå󥹥ȡ뤷 GCC Ȥ include directory ʤۤʤդƤ</p>
<p>ʤglibc  getopt()  POSIX ɸΤΤȤϻͤۤʤΤǡȤ鷺ˡ<samp>system.c</samp>  mcpp_getopt() ȤäƤ</p>

<h3><a name="3.1.4" href="#toc.3.1.4">3.1.4. Mac OS X / Apple-GCC V.4.*</a></h3>
<p>Mac OS X Ǥ Xcode Ȥѥå򥤥󥹥ȡ뤹 GCC ⥤󥹥ȡ뤵ޤ
/usr/bin ¿ gcc, cc, g++, c++ ޤIntel-Mac  Mac OS X 10.5 (Leopard) ξϡi686-apple-darwin9-gcc-4.0.1, i686-apple-darwin9-g++-4.0.1 ȤΤΥޥѤ native code 륳ѥǤ
Ʊ˥ѥ⥤󥹥ȡ뤵ޤ
Intel-Mac ξϡpowerpc-apple-darwin9-gcc-4.0.1, powerpc-apple-darwin9-g++-4.0.1 ȤΤ powerpc ѤΥХʥ륯ѥǤ
ñʤ gcc (g++)  gcc-4.0 (g++-4.0) ؤΥ󥯤ǡϥǥեȤǤ native compiler Ȥưޤ-arch ppc ȤץդƵư powerpc ѤΥѥΤƤӽФޤ
ޤ/Developer/usr/bin ˤ /usr/bin Ʊѥ켰󥹥ȡ뤵ޤ</p>
<p>Ϥ Apple ˤä¿γĥܤ줿 Mac OS X Ѥ GCC Ǥ
¾Υƥ GCC ȰۤʤΤϡĤ framework ȸƤФäʥǥ쥯ȥ system header directory ȤƤ뤳ȤǤ
⤦Ĥ Intel-Mac  PowerPC-Mac ΥХʥΡʣΡ˥ޥǤ褦ˤʤäƤ뤳ȤǤ
ΥХʥ򣱤Ĥ˥Хɥ뤷ƤɤΥޥǤư褦ˤ universal binary ȤΤ뤷ߤ⤢ޤ
¤ gcc-4.0, i686-apple-darwin9-gcc-4.0.1, powerpc-apple-darwin9-gcc-4.0.1 䡢ƤӽФ륳ѥΤǤ /usr/libexec/gcc/SYSTEM/4.0.1  cc1, cc1plus ⤹٤ i386 Ѥ ppc ѤȤ universal binary ʤΤǤSYSTEM  i686-apple-darwin9 ޤ powerpc-apple-darwin9ˡ
򤽤Τޤ x86 ޥ󤫤 powerpc ޥ˻äƤСnative  cross δطž֤ư褦ˤʤäƤΤȻפޤ
ξ塢Intel-Mac  ppc ѤΥХʥ x86 ΥɤѴʤ鼫ưŪư褦ˤʤäƤޤ</p>
<p>Ȥǡ/usr/bin  /Developer/usr/bin ¿ gcc, g++ ꡢؤΥ󥯤ꡢx86 Ѥ ppc Ѥ libexec ǥ쥯ȥ꤬ꡢĤμ¹ԥץˣĤΥХʥ꤬Хɥ뤵Ƥꡢppc ѤΥХʥ꤬ x86 ưĥǽꡢʶ路ΤդƤ
Ǥ Intel-Mac  Mac OS X 10.5 (Leopard) ˤȤޤppc-Mac Ǥ i686  powerpc (ppc) ؤɤǤ
ޤMac OS X 10.4 (Tiger) Ǥ darwin9  darwin8 ɤؤƤ</p>

<h4><a name="3.1.4.1">3.1.4.1. ͥƥ֥ѥȥѥ</a></h4>
<p>ͥƥ֥ѥѤ <b>mcpp</b> Υ󥹥ȡϴñǤ
noconfig.H  mac_gcc401_i686.dif ѹäȡIntel-Mac  Mac OS X 10.5 / GCC 4.0.1 Ѥˤʤޤ
Makefile ȤƤ mac_osx.mak Ȥޤ
make; sudo make install Ȥ compiler-independent-build make COMPILER=GNUC; sudo make COMPILER=GNUC install Ȥ GCC-specific-build Ǥޤ
/Developer/usr/bin ˤ̾ PATH ̤äƤʤΤǡѥ /usr/bin ΤΤȤޤ</p>
<p>Intel-Mac  powerpc ѤΥѥ˥󥹥ȡ뤹ˤϡޤ noconfig.H  mac_gcc401_powerpc.dif ѹäޤ
 Makefile ޤ
<p>compiler-independent-build Ǥ NAME, CC, CXX Ȥѿ򡢤 mac_osx.mak ΥȤˤ褦 powerpc ޤʸѹޤ
 make; sudo make install Ȥޤ
ϡ֥ѥǡץѥ뤵줿Τǡppc-Mac ưϤǤ</p>
<p>GCC-specific-build Ǥ NAME, INCDIR, BINDIR, target_cc, arch 򡢤Ϥ powerpc (ppc) ޤ̾ѹޤCC, CXX ѹʤˡ
ơmake COMPILER=GNUC; sudo make COMPILER=GNUC install Ȥޤ
 Intel-Mac ư֥ѥΤΡפΤʤΤǡIntel-Mac ưޤ</p>
<p>ppcMac ǤϡIntel-Mac Ȥϵդˡmac_gcc401_powerpc.dif ǥͥƥ֥ѥѤˤʤꡢmac_gcc401_i686.dif ǥѥѤˤʤϤǤ
ѥѤǤϡ嵭 Intel-Mac  Makefile ѿ powerpc ޤ̾ȤäȤ򡢤٤ i686 ѹޤ</p>

<h4><a name="3.1.4.2">3.1.4.2. Universal binary</a></h4>
<p>Universal binary ˤϡmac_osx.mak  UFLAGS Ȥѿ򥳥ȥȤƤ # 򳰤ơͭˤǤ
ȤΤޤޤǤ</p>

<h3><a name="3.1.5" href="#toc.3.1.5">3.1.5. CygWIN / GCC V.2.*, 3.*</a></h3>
<p>CygWIN V.1.3.10 / GCC V.2.95.3 Ǥ <samp>noconfig.H</samp>  cyg1310.dif ˤ褦ѹäޤ<br>
CygWIN V.1.5.18 / GCC V.3.4.4 Ǥ cyg1518.dif Ȥޤ</p>
<p> <i>CYGWIN_ROOT_DIRECTORY</i> ȤޥʬδĶ˹碌ƽޤ CygWIN ¸ߤ Windows Υǥ쥯ȥ򼡤ηΤǤ</p>
<pre>
#define CYGWIN_ROOT_DIRECTORY   "c:/pub/compilers/cygwin"
</pre>
<p>path-list ʸʸϴطޤ</p>
<p>¾ version Ǥ⡢
<i>VERSION_MSG</i>, <i>CYGWIN_ROOT_DIRECTORY</i> include directory Υޥѹ뤳ȤбǤǤ礦</p>
<p>CygWIN  Windows ΥƥǤUNIX Υե륷ƥबߥ졼ȤƤΤǡ<b>mcpp</b> Ǥ UNIX ϥƥ GCC ȤۤƱͤ˰ޤInclude directories  UNIX ϤƱͤȤ߹ޤޤ</p>

<h3><a name="3.1.6" href="#toc.3.1.6">3.1.6. MinGW / GCC V.3.*</a></h3>
<p>MinGW / GCC V.3.4.5 Ǥ <samp>noconfig.H</samp>  mingw345.dif Τ褦ѹäޤ<br>
 <i>MSYS_ROOT_DIRECTORY</i>, <i>MINGW_DIRECTORY</i> ȤĤΥޥʬδĶ˹碌ƽޤϼΤ褦ˡ줾 /, /mingw ǥ쥯ȥ Windows ΰ֤ΤǤ</p>
<pre>
#define MSYS_ROOT_DIRECTORY "C:/Program Files/MSYS/1.0"
#define MINGW_DIRECTORY     "C:/Program Files/MinGW"
</pre>
<p>path-list ʸʸϴطޤ</p>
<p>¾ version Ǥ⡢
Υޥ <i>VERSION_MSG</i> include directory Υޥѹ뤳ȤбǤǤ礦Include directory Υޥ "C:/dir/mingw/include" ȤХѥǤ⡢"/mingw/include" Ȥ MinGW Υǥ쥯ȥǤ⤫ޤޤ</p>
<p>MinGW Ǥ symbolic link ݡȤƤʤΤǡgcc  GCC-specific-build  <b>mcpp</b> ưΤ symbolic link Ȥޤ󡣤ξ塢MinGW / gcc ϤȤ cc1 Ȥ̾Ǥ shell-script εưϵݤޤǡ<b>mcpp</b> ΥѥǤ cc1.exe Ȥ¹ԥץơ椫 mcpp.exe ޤ GCC  cc1.exe, cc1plus.exe ƤӽФޤ</p>
<p>MinGW  GCC-specific-build Ǥ include directories  <b>mcpp</b> ꤷޤcompiler-independent-build ǤꤵʤΤǡĶѿ INCLUDE, CPLUS_INCLUDE ǻꤹɬפޤ</p>

<h3><a name="3.1.7" href="#toc.3.1.7">3.1.7. LCC-WIN32 2003-08, 2006-03</a></h3>
<p>LCC-WIN32 2003-08-*, 2006-03-* ǤϤ줾 lcc0308.dif, lcc0603.dif Τ褦ѹäޤ<br>
¾ version Ǥ <i>VERSION_MSG</i> ޥѹޤ</p>

<h3><a name="3.1.8" href="#toc.3.1.8">3.1.8. Visual C++ 2002, 2003, 2005, 2008</a></h3>
<p>Visual C++ 2008, 2005, 2003, 2002, 6.0 ǤϤ줾 vc2008.dif, vc2005.dif, vc2003.dif, vc2002.dif, vc6.dif Τ褦ѹäޤcompiler-specific-build Ǥ <i>COMPILER</i> ޥ񤭴뤫nmake -DCOMPILER=MSC ץǾ񤭤ޤ</p>
<p>Visual C ¾ΥСǤϡ<i>VERSION_MSG</i> ޥѹۤ<tt>_MSC_VER</tt>  <tt>_MSC_FULL_VER</tt> ȤȤ߹ߥޥͤ򤽤줾 <i>COMPILER_EXT_VAL</i>, <i>COMPILER_EXT2_VAL</i> ȤޥѤ뤳Ȥбޤ</p>

<h3><a name="3.1.9" href="#toc.3.1.9">3.1.9. Borland C++ V.4.*, V.5.*</a></h3>
<p>Borland C V.4.0, V.5.5, V.5.9 (C++Builder 2007) / bcc32 ǤϤ줾 bc40.dif, bc55.dif, bc59.dif Τ褦ѹäޤ</p>
<p>Borland C/C++ ̤ΥСǤ <i>VERSION_MSG</i> Τۤ<tt>__TURBOC__</tt>, <tt>__BORLANDC__</tt>, <tt>__BCPLUSPLUS__</tt> ȤȤ߹ߥޥͤ򤽤줾 <samp>noconfig.H</samp>  <i>COMPILER_STD2_VAL</i>, <i>COMPILER_EXT_VAL</i>, <i>COMPILER_CPLUS_VAL</i> ȤޥѤ뤳Ȥǡбޤ<a href="#4.1.1.1">4.1.1.1</a> ȡˡDigraphs μƤСǤС<i>HAVE_DIGRAPHS</i> ѹޤ<tt>__STDC_VERSION__</tt> μƤСǤС<i>STDC_VERSION</i> ѹޤ</p>
<p>ޤBorland C 4.* ޤǤΥСǤϡ</p>
<pre>
#define SEARCH_INIT         CURRENT
</pre>
<p>Ȥޤ
</p>
<br>

<h2><a name="3.2" href="#toc.3.2">3.2. DECUS cpp бƤ</a></h2>
<p>PDP-11  RT-11 / DECUS C, RSX / DECUS CVAX  VMS / VAX-11 
CPDP-11 / UNIX, VAX / ULTRIX βΣäˤ DECUS cpp бƤ褦ǤMS-DOS  Microsoft C, Lattice C ΤʤŤǤˤбƤ褦ǤϤˤ⤦פȻפ졢ޤ伫Ȥƥʥ󥹤ǤʤΤǡޤ</p>
<br>

<h2><a name="3.3" href="#toc.3.3">3.3. noconfig.H, configed.H, system.H</a></h2>
<p><samp>system.H</samp>  <i>HAVE_CONFIG_H</i> Ȥޥ non-0 Ƥ <samp>configed.H</samp>  include Ǥʤ <samp>noconfig.H</samp>  include ޤ<samp>configed.H, noconfig.H</samp> ˤ <b>mcpp</b>  PART 1  PART 2 Ȥʬꡢ<samp>system.H</samp> ˤ PART 3 ޤ</p>
<p>ΥեˤϡƽϤ˰ܿɬפʤĤΥޥƤޤޤܿƤʤϤ˰ܿˤϡPART 1 ˿ԤʤԤ­ޤ<br>
PART 1 ϣϣӤ target Ϥ˰¸ǡPART 2  host Ϥ˰¸ PART 3  <b>mcpp</b> ưͤǤ<br>
<samp>configed.H, noconfig.H</samp> ǤϥåȽϤȥۥȽϤȤƱǤȲꤷƤޤۤʤ PART 2 Խɬפޤ</p>
<p>ǥեȤȰ㤦ǰܿϡΥեΤɬܤ̤Ƥ</p>
<br>

<h2><a name="3.4" href="#toc.3.4">3.4. system.c</a></h2>
<p><samp>configed.H (noconfig.H), system.H</samp> ΥޥǤϵۼǤʤϣӤϤκۤϡ<samp>system.c</samp> ǵۼƤޤ̤νϤ˰ܿˤϡ˿ԤΥ­ȤɬפˤʤǤ礦</p>
<p>Υե˵ҤƤΤϡ<b>mcpp</b> ưΥץusage ʸinclude ǥ쥯ȥꡢإåե䥽ե򥪡ץ󤹤ΣϣӸͭΥǥ쥯ȥѥΰ#pragma νϸͭγĥǥ쥯ƥ֤νǤۤȤɤ target OS  target ϤǤ</p>
<br>

<h2><a name="3.5" href="#toc.3.5">3.5. 饤֥ؿ</a></h2>
<p>饤֥ؿΤStandard C ˤʤ getopt(), stpcpy() Σäˤ륽 system.c ˽񤤤Ƥޤ<b>mcpp</b>  getcwd(), stat() ȤUNIX ϤǤ readlink() ȤޤΣĤ OS ˰¸ؿǤ portable ˽񤯤ȤǤʤΤǡˤϴޤƤޤ󡣤ΣĤ Standard C ˤϤޤ󤬡POSIX ǤϵꤵƤޤ<b>mcpp</b> λȤؿϤΣĤǤʤϤϤʤǤ礦
ΤۤMSC Ǥ stricmp() Mac OS X, CygWIN, MinGW Ǥ strcasecmp() Ȥޤ*1, *2<br>
饤֥ؿϤ⡢Ϥˤä̯˰㤦Τͤ˰¸ȤϤƤʤΤǡɤνϤΤΤǤХʤפǤ</p>
<p>:</p>
<p>*1 MinGW Ǥ˸¤ä spawnv() Ȥ롣</p>
<p>*2 <b>mcpp</b> V.2.6.4 ޤǤ lib.c ȤեΩƤƤ getopt(), stpcpy() ΣĤˤʤäΤǡV.2.7  system.c ˵ۼ
ơgetopt()  mcpp_getopt() ̾Ѥơ󥯤Υȥ֥ä</p>
<br>

<h2><a name="3.6" href="#toc.3.6">3.6. ɸإå</a></h2>
<p><b>mcpp</b> ΥǤ <samp>stdio.h, ctype.h, errno.h, stdlib.h, string.h, stddef.h, limits.h, time.h, sys/types.h, sys/stat.h</samp> ̵ include ƤޤUNIX ϤΥƥǤ <samp>unistd.h</samp>  include ޤʤϤϤޤʤǤ礦</p>
<br>

<h2><a name="3.7" href="#toc.3.7">3.7. makefile  <b>mcpp</b> Ȥäꥳѥ</a></h2>
<p>noconfig ǥ쥯ȥˤ *.mak ϸ̤νѤ makefile Ǥܺ٤꤬Ǥޤmake ΤΤϳƽϤ°ΤΡޤϤΥƥɸŪʤΤꤷƤޤVisual C Ǥ make ǤϤʤ nmake Ȥޤ</p>
<p>ޤϤ xyz ȤȡFreeBSD / GCC ʳǤ</p>
<pre>
patch -c &lt; ../noconfig/xyz.dif
</pre>
<p>Ȥ <samp>noconfig.H</samp> ޤˡ<samp>noconfig.H</samp>  <i>COMPILER</i>  <i>VERSION_MSG</i> Ȥޥ񤭴ޤ˼ʬΥƥ˹碌 <samp>noconfig.H</samp>  <i>C_INCLUDE_DIR?</i> ΥޥޤơѤ noconfig/xyz.mak  Makefile ˥ԡǥ쥯ȥʬΥƥ˹碌ƽǡ</p>
<pre>
make
make install
make clean
</pre>
<p>ȤƤ</p>
<p>¾νϤǤϡ򻲹ͤɬפ makefile 
񤤤Ƥΰ¸طñǡ</p>
<ol>
<li><samp>main.c, directive.c, eval.c, expand.c, support.c, system.c, mbchar.c</samp>  <samp>system.H, internal.H</samp> ˰¸<br>
<li><samp>system.H</samp>  <samp>configed.H (noconfig.H)</samp> ˰¸<br>
</ol>
<p>ȤطˤʤäƤޤ
<samp>system.H</samp>  <samp>internal.H</samp>  include ɬפޤ
<samp>internal.H</samp> Ϥ <samp>mcpp_lib.h</samp>  include ޤ</p>
<p>Windows Τ褦˥磻ɥɤ shellʥޥɥץåˤŸʤƥǤϡ<b>mcpp</b> ǤŸʤ褦˥ѥ뤷ƤۤǤ-o ץ󤬻ꤵʤ¤ꡢ裲ϥեλȤߤʤΤǡˡ</p>
<p><b>mcpp</b> ȤȤä <b>mcpp</b> ꥳѥ뤹ˤϡϤΥץץåΤˤμ¹ԥץ򤪤ޤ㤨 GCC V.2.95 ǤС° cpp0  cpp0_gnuc ȤǤ rename Ƥλ˻ȤΤ cpp0 ˥󥯤ΤɤǤ礦ʤȤץץå mcpp Ȥȡ</p>
<pre>
ln -sf mcpp cpp0
</pre>
<p>ȤޤWindows ǤϻȤΤ cpp32.exe ˥ԡޤ*1</p>
<p><b>mcpp</b> ¹ԥץ̾</p>
<pre>
make NAME=mcpp
</pre>
<p>Ȥƻꤹ뤳ȤǤޤƱȤ 
BC make Ǥ make -DNAME=mcpp Ȥ롣UCB make Ǥ -D դƤդʤƤɤGNU make Ǥ -D դƤϤʤˡ</p>
<p>źդ makefile Ǥ GCC ѡfreebsd.mak, linux.mak, mac_osx.mak, cygwin.mak, mingw.mak˰ʳ make install ǤϤޤϤʤΤǡäƤ°Υץץåϡmake install ǾäƤޤȤΤʤ褦ˡ餫̾Υե˥ԡƤƤ</p>
<p>Visual C, Borland C Τ褦ʣѥѥ <b>mcpp</b> Ȥäƥꥳѥ뤹ϡ<b>mcpp</b> νϥե򥳥ѥͿ륽եȤޤ㤨 <samp>main.c</samp> ȤץץΤ <samp>main.i</samp> Ȥä̾ǽϤơ cl  bcc32 ˥ѥ뤵ˡ</p>
<p><b>mcpp</b> Ȥäƥꥳѥ뤹ϡإåե "pre-preprocess" εǽȤȡץץ֤ṳ̂ޤźդ makefile ȤϡUCB make, GNU make, MS nmake Ǥϡ</p>
<pre>
make PREPROCESSED=1
</pre>
<p>BC make Ǥ</p>
<pre>
make -DPREPROCESSED=1
</pre>
<p>ȤȡưŪ˥إåե pre-preprocess ǥץץ줫饳ѥ뤷ޤLCC-Win32  make Ǥ if ʸˤʬǤʤΤǡmakefile ƥꥳѥ뤹ɬפޤƤ makefile ΤΤ˥ȤȤƽ񤤤Ƥޤ</p>
<p>UCB make, GNU make, MS nmake ǤϡMALLOC=KMMALLOC Ȥץդ make ȡ䤬񤤤 malloc() 󥯤ޤˤĤƤ <a href=#4.extra>4.extra</a> 򸫤ƤBC make ǤƱȤ -DKMMALLOC ȤץǻꤷޤLCC-Win32 make ǻ malloc() 󥯤뤿ˤϡmakefile ɬפޤ</p>
<p>:</p>
<p>*1 FreeBSD Ǥ cpp0, cc1 ֤ɸΥǥ쥯ȥ /usr/libexec Ǥ롣Linux Ǥ /usr/lib/gcc-lib/i686-redhat-linux/3.3.2 ȤäҤɤǥ쥯ȥˤʤäƤ롣Linux / GCC Ǥ distribution 䤽 version ˱ makefile ΤΥǥ쥯ȥλ񤭴ɬפ롣Include directory ⤤ΤǡΤʤФʤʤ</p>
<p>ޤLinux  FreeBSD Ǥ /usr/bin/cpp ȤΤ뤬ϼºݤˤ cpp0 ޤ cc1 ƤӽФgcc  cpp0 ޤ cc1 ƤӽФ<br>
ʤ<a href="mcpp-manual.html#3.9.5">mcpp-manual.html#3.9.5</a>, 
<a href="mcpp-manual.html#3.9.7">mcpp-manual.html#3.9.7</a> ⻲ȤΤȡGCC 3.*, 4.* Ǥϥץץѥ (cc1, cc1plus) ˵ۼƤޤäΤǡ<b>mcpp</b> Ȥˤ gcc, g++ θƤӽФ shell-script ֤ɬפ롣</p>
<br>

<h2><a name="3.8" href="#toc.3.8">3.8. <b>mcpp</b> 򥳥ѥǤ</a></h2>
<p>ƽϤ˰ܿ뤿ˤϤĤ꤬ɬפǤ<b>mcpp</b> Υ򥳥ѥ뤹뤳ȼΤϡC90 (ANSI C) λͤƤϤǤнʬǤޤץץåƱͤǤ*1, *2</p>
<p>char դǤʤǤ⤫ޤޤ<br>
ư黻פǤ
</p>
<p>ΥϽϤ̯ʺ˱ƶʤ褦˽񤤤Ƥޤ
äȤ⡢ºݤ˳ƽϤǥѥ뤹뤿ˤϡˤνϤΥХ򤹤ɬפޤϤäƤߤʤȲФƤ뤫狼ޤ󡣻䤬ܿĤνϤǤ⡢ХǤ뤳ȤΤ᤽βˡ򸫤ĤޤǤˤʤλ֤äƤޤäȤ󤫤ޤ</p>
<p><b>mcpp</b> бƤʤΤϡpre-C90 νϤΤۤüʸåȤĽϤü CPU Ǥ<br>
EBCDIC ˤбƤޤ<br>
ޤ黻Ǥʤ 
CPU ˤ⡢бƤޤ󡣣Ǥʤϡ#if ǥСեȯˡʤ뤫⤷ޤ</p>
<p>:</p>
<p>*1 <b>mcpp</b> V.2.5 ޤǤ K&amp;R 1st. νϤǤ⥳ѥǤ褦ˤƤǤˤɬפϤʤʤäƤȻפΤǡV.2.6  C90 Ȥ褦˲᤿ȼäƥΥɥȤ</p>
<p>*2 V.2.6.2 ޤǤ C++ Ǥ⥳ѥǤ褦ˤƤV.2.6.3  C Ȥ</p>
<br>

<h2><a name="3.9" href="#toc.3.9">3.9. ѥ뤹ϤȥåȤν</a></h2>
<p><b>mcpp</b> Υ򥳥ѥ뤹ϡʥۥȡˤȡˤä줿 <b>mcpp</b> μ¹ԥץȤϡʥåȡˤȤϡɬƱǤɬפϤޤ󡣤줬äƤϡ<samp>noconfig.H (configed.H)</samp>  <i>SYSTEM</i>, <i>COMPILER</i> ǥåȤꤷ<i>HOST_SYSTEM</i>, <i>HOST_COMPILER</i> ϥۥȤꤷޤޤPART 1 ˤϥåѤΤΤǡPART 2 ˤΤϥۥѤǤ<samp>system.c</samp> ϼȤƥåѤΤΤǤ</p>
<p>ۥȤȥåȤδطˤϡΤ褦¤ޤ</p>
<ol>
<li>ۥȽϤϥåȽϤƱϣӾΤΤǤ뤫
ޤϥѥǤ뤳ȤɬפǤ
ۥȽϤȥåȽϤʸåȤȤϤȤ ASCII Ǥ뤳ȤɬפǤ<br>
<li>ۥȽϤ long (unsigned long) ϥåȽϤΤϰϤƤϤޤ󡣤 Standard C ǵꤵƤǤ⤢ޤC99 Ǥ long long (unsigned long long) ˤĤƱȤޤ<br>
</ol>
<p>ʤǸۥȤȥåȤȤΤϡѥΤȤϴطޤ󡣥ѥ뤹ΤϥѥΤλŻǡץץåϸ§ȤƤˤϴΤޤ<b>mcpp</b> ֥ѥˡװܿϡΥѥ餬ǸåȽϤǤۥȽϤȤƤϥѥǤʤΤȤȤˤʤϤǤ<b>mcpp</b> ֥ѥǡץѥ뤹ϡΥѥ餬ۥȽϤǡѥΥåȤåȽϤȤʤޤ</p>
<br>

<h2><a name="3.10" href="#toc.3.10">3.10. MS-DOS νϡDJGPP </a></h2>
<p><b>mcpp</b> βΥСǥݡȤƤΤΤθ塢ݡȤ᤿ϤˤĤƽҤ٤Ƥޤ</p>
<p><b>mcpp</b> V.2.2 ޤǤϼνϤ򥵥ݡȤƤޤV.2.4 Ǻޤ</p>
<blockquote><table>
<tr><td>MS-DOS          </td><td>Turbo C V.2.0</td></tr>
<tr><td>OS-9/6x09       </td><td>Microware C</td></tr>
</table></blockquote>
<p>V.2.5 ǤϼνϤ˴ؤɥȤޤ</p>
<blockquote><table>
<tr><td>DJGPP V.1.12    </td><td>GCC V.2.7.1</td></tr>
<tr><td>MS-DOS          </td><td>LSI C-86 V.3.3 </td></tr>
</table></blockquote>
<p>V.2.6 ǤϾΣĤνϤ򥽡˼νϤ˴ؤɥȤȥޤ</p>
<blockquote><table>
<tr><td>MS-DOS          </td><td>Borland C 4.0</td></tr>
<tr><td>Plan 9          </td><td>pcc</td></tr>
</table></blockquote> 
<p>V.2.6 ǤϤޤMS-DOS νϤξƥΤ򤹤٤ƺpre-C90 νϤΤޤ</p>
<p>ŤϤǡ桼ϾʤʤäƤȻפΤǤ<br>
⤷νϤǥѥ뤹ϡcompiler-specific-build Ǥ¿꤬ɬפǴñǤϤޤ󤬡compiler-independent-build ʤ顢νϤ C90 λܼͤۤƤСΤ褦ˤƴñˤǤޤ</p>
<p>DJGPP ˤĤƤϡnoconfig.H  <i>SYSTEM, HOST_SYSTEM</i>  <i>SYS_WIN32</i> Ȥ<i>HAVE_INTMAX_T, HAVE_INTTYPES_H</i>  <i>FALSE</i> Ȥsystem.H  <i>NBUFF</i> ǥեȤ 1/4 餤˲ޤ*1</p>
<p>MS-DOS νϤˤĤƤϡnoconfig.H  <i>SYSTEM, HOST_SYSTEM</i>  <i>SYS_WIN32</i> Ȥ<i>HAVE_LONG_LONG</i>  <i>FALSE</i> Ȥsystem.H  <i>NBUFF</i> ǥեȤ 1/16 餤ˡ<i>IDMAX</i> ǥեȤ 1/4 餤˲ޤ directive.c  <i>SBSIZE</i> ǥեȤ 1/8 餤ˤޤơlarge memory model ǥѥ뤷ޤ<br>
MS-DOS Ǥϥ󤬸Τǡǥѥ뤷ƤƤ⡢Ĺʥޥ¿ʤɤ out of memory Ȥʤ뤳Ȥޤ</p>
<p>:</p>
<p>*1 DJGPP / GCC 4.1.0 ǤϤ <b>mcpp</b> V.2.6.1 򥳥ѥǤȤ𤬤롣</p>
<br>

<h2><a name="3.11" href="#toc.3.11">3.11. Compiler-independent-build Υѥ</a></h2>
<p><b>mcpp</b> ϤΩñΤư compiler-independent ǤȤƥѥ뤹뤳ȤǤޤ¿ξϥѥ뤵̤ФΤǴñǤCompiler-independent Ǥϼ¹Իץʤɤλͤϰǡϰ¸ʬϤޤOS ˤ㤬Ǥinclude directory  UNIX Ϥ /usr/include, /usr/local/include ꤵʤΤǡȤϴĶѿ -I ץǻꤹɬפޤ*1, *2</p>
<p>configure Ȥ륷ƥ GCC ǥѥ뤹ñ mcpp Υ롼ȥǥ쥯ȥ</p>
<pre>
./configure; make; make install
</pre>
<p>ȤФߤޤξ <samp>noconfig.H</samp> ǤϤʤ <samp>configed.H</samp> Ȥإåե뤬Ȥޤconfigure ξܺ٤ˤĤƤ INSTALL-jp 򻲾ȤƤ</p>
<p>configure λȤʤƥǤ <b>mcpp</b> Ǥ˰ܿƤϤǤϡnoconfig ǥ쥯ȥˤκʬեȤä <samp>noconfig.H</samp> 񤭴Фߤޤʳѹɬפޤmakefile  noconfig ǥ쥯ȥˤΤ򥳥ԡƻȤޤ󥹥ȡ뤹ǥ쥯ȥ makefile  BINDIR Ȥѿ˽񤭤ޤơsrc ǥ쥯ȥ make make install ޤ<br>
<b>mcpp</b> Ǥ˰ܿƤϤȥС󤬾㤦ξϡޤᤤСκʬեŬѤơԽޤ</p>
<p><b>mcpp</b> ޤܿƤʤϤǤϡ<samp>noconfig.H</samp> ԽƿĤΥޥ񤭴񤭲äꤷƤޤ<i>HOST_COMPILER</i> Ŭޤơ<i>COMPILER</i>  <i>INDEPENDENT</i> <i>SYSTEM</i> 򤽤 OS <i>VERSION_MSG</i> ŬޤåȽϤ¸ߤʤΤǡPART 1 ˤꤹ뤳ȤϤޤ</p>
<p>PART 2  <b>mcpp</b> 򥳥ѥ뤹ۥȽϤ Standard C λͤɤƤ뤫ɬפʴؿäƤ뤫ˤäơ꤬äƤޤǤ㤦Τ long long ȤμǤVisual C 2002, 2003, 2005  Borland C 5.5 Ǥ <samp>__int64</samp> ȤˤʤäƤơͤ printf() ɽҤ VC 2005 ʳǤ j  ll ǤϤʤ I64 ʤΤǡ<i>LL_FORM</i> Ȥޥ "I64" ޤMinGW Ǥ long long ޤprintf() λҤ I64 Ǥ
Visual C 2008 Ǥ long long Ȥ̾Ȥ褦ˤʤޤ</p>
<p>stpcpy() ȤؿΤʤϤǤϡ<i>HOST_HAVE_STPCPY</i>  <i>FALSE</i> ޤ</p>
<p>makefile  noconfig ǥ쥯ȥˤΤ򻲹ͤˤƽ񤤤Ƥ<a href="#3.7">3.7</a> ⻲ȤΤȡˡ</p>
<p>Mac OS X ˤ x86  powerpc ΥХʥΥޥǺ褦ˡͥƥ֥ѥȥѥȤѰդƤޤ
ޤȤä universal binary ȤΤ褦ˤʤäƤޤ
 x86  powerpc ѤΥХʥܤΥե«ͤΤǤ
λȤߤϾʣʤΤǡ<a href="#3.1.4">3.1.4</a>  compiler-specific-build  compiler-independent-build ˤĤƤޤȤƤޤ</p>
<p>ʤ<b>mcpp</b> V.2.6.3  sourceforge ΥȤ compiler-independent-build βफΥХʥꡦѥå󶡤褦ˤʤޤϤ줾Υѥå˸ͭˡǥѥå󥰤줿ΤǤΥѥå󥰻ͤϤ줾б륽ѥåˤե˽񤫤ƤޤFreeBSD, Linux, Mac OS X ѤΤΤϤ٤ƥѥˤ configure ץȤȤäƤޤ</p>
<p>:</p>
<p>*1 <b>mcpp</b> V.2.4, V.2.5 Ǥ compiler-independent ǤλͤȾüǡ
Ϥλͤб̤ΥޥɤȤƤΥץץåǤäV.2.6 ϽϤΩλͤȤ</p>
<p>*2 ѥ뤵̤ФȸäƤ⡢MS-DOS νϤǤϥ󤬸ΤǡѥϤǤƤ¹Ԥ out of memory ˤʤ뤳Ȥ롣MS-DOS Ǥ translation limits ˲ƥѥ뤷ʤФʤʤ3.10 򻲾ȡ</p>
<br>

<h2><a name="3.12" href="#toc.3.12">3.12. Subroutine-build Υѥ</a></h2>
<p><b>mcpp</b> ¾β餫Υᥤץफ饵֥롼ȤƸƤӽФ褦˥ѥ뤹뤳ȤǤޤΩץץåƱ褦ˡƤӽФ¹Իץꡢꤵ줿ϥեץץƽϥե˽ϤơƤӽФΤǤɬפʤʣΥեˤĤƷ֤ƤӽФȤǤޤƤӽФȥȡñ̤ΤȤ򤹤ΤǤϤޤ</p>
<p>֥롼ǤǤϡȤƥեǤϤʤΥХåեȤȤǤޤ</p>
<p><b>mcpp</b> Υϡ<i>MCPP_LIB</i> Ȥޥ non-0 ƥѥ뤹ȡ֥롼ǤȤƥѥ뤵褦ˤʤäƤޤ֥롼 stand-alone Ǥ main() Τ褦 mcpp_lib_main() Ȥ̾ѤǤ</p>
<pre>    int mcpp_lib_main( int argc, char ** argv);</pre>
<p>GCC Ǥ <i>COMPILER</i> ޥ <i>GNUC</i> ǤϤʤ <i>INDEPENDENT</i> Τޤޤǥѥ뤷ޤ<i>GNUC</i> ȤȡGCC  libexec ǥ쥯ȥ˥󥹥ȡ뤵 GCC ƤӽФΤǤƤޤǤ<br>
¾ǡVisual C, Borland C, LCC-Win32 Ǥ <i>COMPILER</i>  <i>INDEPENDENT</i> Ǥ <i>MSC, BORLANDC, LCC</i> ΤɤǤ⤫ޤޤ󡣤νϤǤϥץץåΩƤʤΤǡcompiler-specific-build ǤϤƤӽФ뤳ȤϤʤǤcompiler-specific-build ǤϽϸͭλޥ䥪ץ䤤ĤνϸͭλͤΤǡ줬ĤɤǥѥλӤޤ</p>
<p>ºݤ˥ѥ뤹μ configure script Ȥ noconfig/*.mak եȤȤʬޤ</p>

<h3><a name="3.12.1" href="#toc.3.12.1">3.12.1. configure </a></h3>
<p>GCC ǥѥ뤹 configure Ȥޤ</p>
<pre>
./configure --enable-mcpplib
make
sudo make install
</pre>
<p>ȤȡLinux  FreeBSD Ǥ compiler-independent Ǥ libmcpp.a, libmcpp.so.$(SHLIB_VER) ơǥեȤǤ /usr/local/lib ˥󥹥ȡ뤵ޤ
ơlibmcpp.so  libmcpp.so.0  libmcpp.so.$(SHLIB_VER) ؤΥ󥯤ĥޤ
*.a  static 饤֥ꡢ*.so  shared 饤֥Ǥ
libmcpp.la Ȥեޤ libtool Ȥġ뤬ȤΤΤǤ
$(SHLIB_VER)  <b>mcpp</b> V.2.6.3 Ǥ 0.0.0V.2.6.4 Ǥ 0.0.1V.2.7 ʹߤǤ 0.1.0 ȤƤޤ
mcpp_lib.h, mcpp_out.h Ȥإåե /usr/local/include ˥󥹥ȡ뤵ޤ
 libmcpp ȤץɬפʤΤǤ</p>
<p>Mac OS X Ǥ *.so ǤϤʤ *.dylib Ȥ̾ˤʤޤ
ޤmake  CFLAGS+='-arch i386 -arch ppc' ȡ-arch ץǤĤ CPU ꤹȡб universal binary Υ饤֥꤬Ǥޤ
 -isysroot  -mmacosx-version-min= ȤץȤäơȤ Mac OS X ΥСϰϤ򹭤뤳ȤǤޤ
ϡLeopard  Tiger ȸߴ i386  ppc Ѥ universal binary  shared 饤֥륳ޥɤǤ</p>
<pre>
make CFLAGS+='-isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -arch i386 -arch ppc'
</pre>
<p>CygWIN, MinGW Ǥ *.so ǤϤʤ *.dll Ȥ̾ DLL Ȥʤޤ
CygWIN Ǥ libmcpp.a, libmcpp.dll.a, libmcpp.la  /usr/local/lib ˡcygmcpp-0.dll  /usr/local/bin ˥󥹥ȡ뤵ޤ
MinGW ۤȤƱǤcygmcpp-0.dll  libmcpp-0.dll Ȥ̾ˤʤޤ
DLL ȤȤ libmcpp.dll.a 󥯤ޤ
 import library ȤΤǤ</p>
<p>줿 libmcpp.so 󥯤 main_libmcpp.c Ȥñʥ⥳ѥ뤵ơmcpp Ȥ̾ /use/local/bin ˥󥹥ȡ뤵ޤ
ΥǤ狼褦ˡlibmcpp Ȥˤ mcpp_lib.h Ȥإåե include ޤ*1</p>
<p>Ǿ¤ΥɥȤ⥤󥹥ȡ뤵ޤ</p>
<p>testmain.c 򥳥ѥ뤷ƥ饤֥ȥ󥯤ȡ⤦ʣʥƥȤǤޤ
 configure ǤϤʤΤǡˡǹԤޤ</p>
<p>:</p>
<p>*1 libmcpp Ȥʤ stand-alone Ǥ compiler-independent-build  mcpp Ʊ̾Ʊǥ쥯ȥ˥󥹥ȡ뤵Τǡߤ˾񤭤礦Ȥˤʤ롣
ɥȤƱΤƱǥ쥯ȥ˥󥹥ȡ뤵Τǡ񤭤롣</p>

<h3><a name="3.12.2" href="#toc.3.12.2">3.12.2. noconfig/*.mak Ȥ</a></h3>
<p>noconfig.H  noconfig ǥ쥯ȥ makefile Ȥϡnoconfig.H ˤνϤΥСѤ patch Ƥơmakefile γƥǥ쥯ȥʬΥƥ˹碌ƽǡˡΤ褦ˤޤ
<pre>
make MCPP_LIB=1 mcpplib
make MCPP_LIB=1 mcpplib_install
</pre>
 compiler-independent ǤΥѥǤGCC ʳǤ COMPILER=MSC Ȥ compiler-specific Ǥǥѥ뤷Ƥ⤫ޤޤ<br>
Visual C Ǥ make ǤϤʤ nmake Ȥޤ<br>
LCC-Win32  make 㵡ǽ if ʸˤʬǤʤΤǡmakefile Խʤ make ɬפޤ</p>
<p>Linux, FreeBSD, Mac OS X, CygWIN, MinGW Ǥϡlibmcpp.la ʤΤȥɥȤ󥹥ȡ뤵ʤʳϡconfigure  make Ʊͤη̤ˤʤޤ
Mac OS X Ǥϡmac_osx.mak  UFLAGS Ȥѿ򥳥ȥȤƤ # 򳰤ȡuniversal binary ˤʤޤ
Windows νϤǤϥ饤֥̾ Linux ȤϰäơΤ褦ˤʤޤ</p>

<table border='1' frame='below'>
  <tr><th></th><th>FreeBSD / GCC</th><th>Linux / GCC</th><th>Mac OS X / GCC</th><th>CygWIN / GCC</th><th>MinGW / GCC</th><th>Visual C, Borland C, LCC-Win32</th></tr>
  <tr><th>static library</th><td>libmcpp.a</td><td>libmcpp.a</td><td>libmcpp.a</td><td>libmcpp.a</td><td>libmcpp.a</td><td>mcpp.lib</td></tr>
  <tr><th>shared library or DLL</th><td>libmcpp.so.$(SHL_VER)</td><td>libmcpp.so.$(SHLIB_VER)</td><td>libmcpp.$(SHLIB_VER).dylib</td><td>cygmcpp-$(DLL_VER).dll<td>libmcpp-$(DLL_VER).dll</td><td>mcpp$(DLL_VER).dll</td></tr>
  <tr><th>import library of DLL</th><td></td><td></td><td></td><td>libmcpp-$(DLL_VER).dll.a</td><td>libmcpp-$(DLL_VER).dll.a</td><td>mcpp$(DLL_VER).lib</td></tr>
</table>

<p>$(SHL_VER)  <b>mcpp</b> V.2.6.3, V.2.6.4 Ǥ 0V.2.7 Ǥ 1V.2.7.1 ʹߤǤ 2 Ǥ
$(SHLIB_VER)  <b>mcpp</b> V.2.6.3 Ǥ 0.0.0V.2.6.4 Ǥ 0.0.1V.2.7 Ǥ 0.1.0V.2.7.1 ʹߤǤ 0.2.0 Ǥ
$(DLL_VER)  <b>mcpp</b> V.2.6.3, V.2.6.4, V.2.7, V.2.7.1 ʹߤȤ 0 Ǥ
$(SHLIB_VER) Σܤޤ $(DLL_VER) Ʊϡ$(SHLIB_VER) Σܰʹߤι⤤С㤤Сξ̸ߴδطˤޤ</p>
<p>Windows νϤǤ import library ȤΤޤ DLL ȤΤΤǤ
DLL ȤȤϤ import library 󥯤ޤ
Static library  import library  makefile ǻꤵ줿 $(LIBDIR) ˡDLL Τ $(BINDIR) ˥󥹥ȡ뤵ޤ
DLL  $(BINDIR) ˥󥹥ȡ뤹ΤϡWindows Ǥ DLL ϼ¹ԥץ PATH ̤äǥ쥯ȥˤʤФʤʤǤ
<p>mcpp_lib.h, mcpp_out.h  $(INCDIR) ˥󥹥ȡ뤵ޤ</p>
<p>饤֥Ǥ󥯤 main_mcpplib.c ⥳ѥ뤵 mcpp Ȥ̾ $(BINDIR) ˥󥹥ȡ뤵ޤ
Windows νϤǤϤ 'DLL_IMPORT=1' ȤץꤹȡDLL Ǥ <b>mcpp</b> 󥯤ޤ</p>
<p>Τ褦ˤȡtestmain.c ȤץᥤץȤƥ饤֥Ǥ <b>mcpp</b> 󥯤ޤ</p>
<pre>
make testmain
make testmain_install
</pre>
<p>testmain.c ˤϥΥХåե˽Ϥ񤤤Ƥޤ
˽Ϥˤϡᥤץ mcpp_lib.h Ȥإåե include ơƤؿȤޤ
嵭Υޥɤ 'OUT2MEM=1' Ȥץդäȡtestmain.c Ǥ줬ͭˤʤޤ
<samp>OUT2MEM</samp> Ȥޥñ testmain.c ΤΤΤǡ<b>mcpp</b> ΤˤϤΥޥɬפޤ</p>
<p>饤֥ǤȤȤϡtestmain.c 򻲹ͤ main ץ񤭡noconfig/*.mak 򻲹ͤ makefile 񤤤Ƥ</p>

<h3><a name="3.12.3" href="#toc.3.12.3">3.12.3. static library  shared library  DLL</a></h3>
<p>饤֥ˤ static library  shared libraryWindows Ǥ dynamically-linking library: DLLˤȤޤ
Static library  *.o (*.obj) ե򽸤᤿Τǡѥ˥󥯤ޤ
ѿؿ global name ϤΤޤ޸ƤӽФ¦ global name Ȥʤꡢ̾ξͤδ⤢ޤ
ΤȤϡV.2.6.1 ޤǤϥ饤֥경ͽꤻ˳ȯƤ <b>mcpp</b> ˤȤäƤ礭Ȥʤޤ
Ф shared library (DLL) ϼ¹Ի˥󥯤Τǡ¾Υץȶͭޤ</p>
<p>Windows  DLL Ǥϥ饤֥ global name ϳϸŪ export 줿̾ import ǽǤ
<b>mcpp</b> ξ mcpp_lib.h ˤ̾ import Ǥޤ</p>
<p>UNIX  shared library Ǥϡ̤ˤϥ饤֥ global name ϳݸǡ̾ξͤ˿ФȤʤФʤޤ
GCC 4.0 ʹߤ <b>mcpp</b> V.2.7 ʹߤ򥳥ѥ뤷ϡmcpp_lib.h ˤ̾ʳϳϸޤ*1, *2</p>
<p>ȤǡWindows Ǥ DLL ȤUNIX Ǥ GCC 4.0 ʹߤǥѥ뤷 shared library ȤΤ̾ξͤ餺¿Ǥ</p>
<p>:</p>
<p>*1 <b>mcpp</b> V.2.7 ʹߤǤ GCC V.4.0 Ǽ줿 #pragma GCC visibility * Ȥǥ쥯ƥ֤Ȥ褦ˤǤ롣</p>
<p>*2 ʤGCC V.4.1 ʹߤˤ -fstack-protector Ȥץ󤬤뤬 #pragma GCC visibility hidden ȤξΩʤ褦Ǥ롣
äơlibmcpp ΥѥǤϻȤʤ</p>
<br>

<h1><a name="4" href="#toc.4">4. ƽϤ˰ܿˡܺ</a></h1>

<h2><a name="4.1" href="#toc.4.1">4.1. noconfig.H, configed.H, system.H </a></h2>
<p>Υإåե˵ҤƤ뤳Ȥΰ̣ϡƤɤФ狼ȻפޤȤ¿񤭹ǤޤǰΤ˰ʲ񤤤Ƥޤ<br>
 PART 1, PART 2  <samp>noconfig.H (configed.H)</samp> ˤꡢPART 3  <samp>system.H</samp> ˤޤ</p>
<p>ޤåȥƥ<b>mcpp</b> ܿ륷ƥˤȥۥȥƥ<b>mcpp</b> 򥳥ѥ뤹륷ƥˤꤷޤ</p>
<ul>
<li><samp><i>SYSTEM</i></samp><br>
åȽϤưϣӤꤷޤϣӤ̾ϤľƤޤ̾ƤʤϣӤŬƤ<br>
<li><samp><i>COMPILER</i></samp><br>
åȽϤꤷޤѥ̾ϤľƤޤ̾ƤʤѥŬƤ<i>COMPILER</i>  <i>INDEPENDENT</i> ȡåȽϤ¸ߤʤ compiler-independent Ǥ <b>mcpp</b> ޤξ PART 1 ¿̵꤬뤵ޤ<br>
<li><samp><i>VERSION_MSG</i></samp><br>
-v ץ usage() ʸɽ뤿ΥۥȽϤΥСʸƥǽ񤭤ޤ<br>
<li><samp><i>HOST_SYSTEM</i>, <i>HOST_COMPILER</i></samp><br>
ۥȣϣӡۥȽϤꤷޤåȤƱϡ<br>
<pre>
#define HOST_SYSTEM     SYSTEM
#define HOST_COMPILER   COMPILER
</pre>
ȤƤޤ<br>
</ul>
<p><i>SYSTEM</i>, <i>COMPILER</i> ̿̾ˤϰε§ޤ
򸫤ۤ狼䤹Ǥ礦ġˤʤäƤޤ<i>SYSTEM</i> ϥ󥯥롼ɥեΥѥꥹȤηϣɸΥ󥯥롼ɥǥ쥯ȥΤ뤿ˤȤƤʤΤǡޤͤɬפϤޤ</p>

<h3><a name="4.1.1" href="#toc.4.1.1">4.1.1. PART 1  åȥƥ: compiler-specific-build</a></h3>

<h4><a name="4.1.1.1" href="#toc.4.1.1.1">4.1.1.1. ޥ</a></h4>
<ul>
<li><samp><i>CPU_OLD, CPU_STD1, CPU_STD2, SYSTEM_OLD, SYSTEM_STD1, SYSTEM_STD2, SYSTEM_EXT, SYSTEM_EXT2, COMPILER_OLD, COMPILER_STD1, COMPILER_STD2, COMPILER_EXT, COMPILER_EXT2</i></samp><br>
<b>mcpp</b>  predefine ϸͭΥޥ̾ʸƥǻꤷޤפʤΤʤǤޤ0 ĤΥȡƤϤʤˡ<i>*_OLD</i> Τ '_' (underline) ǻϤޤʤŤήΥޥǡ <b>mcpp</b> ¹Ի -S &lt;n&gt; ץ &lt;n&gt;  1 ʾꤹ predefine ޤʤGCC-specific-build  STD ⡼ɤǤϡ-ansi ޤ -std=iso* ץ󤬻ꤵʤ¤ꡢΥޥˡ
<i>*_STD?, *_EXT, *_EXT2</i> Ǥɬ _ ǻϤޤޥ̾ꤷޤ<i>*_STD1</i>  <samp>__</samp> ǻϤޤΤǡ<i>*_STD2</i>  <samp>__</samp> ǻϤޤä <samp>__</samp> ǽΤǤ<i>SYSTEM_EXT, SYSTEM_EXT2, COMPILER_STD1, COMPILER_STD2, COMPILER_EXT, COMPILER_EXT2</i> ǤϤΥޥͤ <i>SYSTEM_EXT_VAL, SYSTEM_EXT2_VAL, COMPILER_STD1_VAL, COMPILER_STD2_VAL, COMPILER_EXT_VAL, COMPILER_EXT2_VAL</i> ǻꤷޤ "" ǰϤʸƥǻꤷޤ0 ĤΥȡŸޥ "" ޤꤵʤСΥޥͤ 1 ˤʤޤ¾ predefined ޥ<i>CPU_*, SYSTEM_OLD, SYSTEM_STD1, SYSTEM_STD2, COMPILER_OLD</i> ǻꤵΡˤϤ٤ 1 ͤޤ<br>
<li><samp><i>CPU_SP_OLD</i>, <i>CPU_SP_STD</i></samp><br>
ϸͭüʻޥ̾ʸƥǽ񤭤ޤͤϤ٤ 1 Ȥʤޤ<br>
<li><samp><i>SYSTEM_SP_OLD</i>, <i>SYSTEM_SP_STD</i></samp><br>
ϸͭüʻޥ̾ʸƥǽ񤭡ͤ <i>SYSTEM_SP_OLD_VAL</i>, <i>SYSTEM_SP_STD_VAL</i> ޤ<br>
<li><samp><i>COMPILER_SP1</i>, <i>COMPILER_SP2</i>, <i>COMPILER_SP3</i></samp><br>
ϸͭüʻޥ̾ʸƥǽ񤭡ͤ <i>COMPILER_SP1_VAL</i>, <i>COMPILER_SP2_VAL</i>, <i>COMPILER_SP3_VAL</i> ޤ<br>
<li><samp><i>COMPILER_CPLUS</i>, <i>COMPILER_CPLUS_VAL</i></samp><br>
-+ ץC++ ץץˤꤷϸͭλޥ̾Ȥͤ嵭Ʊ褦ʸƥǻꤷޤ<i>COMPILER_CPLUS_VAL</i> ꤷʤȡΥޥͤ 1 ˤʤޤ̾ '_' ǻϤޤΤǤʤФʤޤɬפʤ <i>COMPILER_CPLUS</i> ΤΤʤǤޤ<br>
</ul>
<p>Τۤ¹Իץ˱ <samp>system.c</samp> ޥ⤢ޤGCC V.3.3 ʹߤǤ̤λޥΤǡȤ̤ <samp>mcpp_g*.h</samp> Ȥ̾ΣܤѤΥإåե뤬 <b>mcpp</b> Υ󥹥ȡ˼ưŪޤ</p>
<p>ʾǻ줿ޥϤ٤Ƽ¹Իˤ -N ץ̵Ȥʤޤ</p>

<h4><a name="4.1.1.2" href="#toc.4.1.1.2">4.1.1.2. Include ǥ쥯ȥ</a></h4>
<ul>
<li><samp><i>C_INCLUDE_DIR1, C_INCLUDE_DIR2, CPLUS_INCLUDE_DIR1, CPLUS_INCLUDE_DIR2, CPLUS_INCLUDE_DIR3</i></samp><br>
<b>mcpp</b> ǥɸإåե include directory ꤷޤ<i>CPLUS_INCLUDE_DIR?</i>  C++  include directory äΤΤȰäƤˡꤷޤ<b>mcpp</b> ư -+ ץꤹ뤳ȤͭȤʤˡUNIX  /usr/include, /usr/local/include  <samp>system.c</samp> ꤵΤǡ<i>C_INCLUDE_DIR?</i> ˤϤʳνϸͭΤΤꤷޤ<br>
<li><samp><i>ENV_C_INCLUDE_DIR</i>, <i>ENV_CPLUS_INCLUDE_DIR</i></samp><br>
<b>mcpp</b> ǥɸإåե include directory ¹Ի˴ĶѿǻꤹΤˡδĶѿ̾ޤ<i>ENV_CPLUS_INCLUDE_DIR</i>  C++  include directory ꤹĶѿ̾ǤǥեȤǤϤ줾 "INCLUDE", "CPLUS_INCLUDE" ޤGCC-specific-build Ǥ "C_INCLUDE_PATH", "CPLUS_INCLUDE_PATH" ǥեȤǤ<br>
ѥϤγ<samp>system.c</samp> ꤵΡ-I ץꤵΤޤʤ̤ͥˤĤƤ <a href="mcpp-manual.html#4.2">mcpp-manual.html#4.2</a> 򻲾ȡˡ<br>
<li><samp><i>ENV_SEP</i></samp><br>
δĶѿʣΥѥ񤯻 separator ʸǽ񤭤ޤ<br>
<samp>/usr/local/abc/include:/usr/local/xyz/include</samp> Ƚ񤯻 ':' <br>
<samp>C:/BC55/INCLUDE;C:/BC55/LOCAL/INCLUDE</samp> Ƚ񤯻 ';' Ǥ<br>
<li><samp><i>SEARCH_INIT</i></samp><br>
åȽϤ include ե򥵡Υ롼񤭤ޤ#include "../dir/header.h" Ȥäǥ쥯ƥ֤ˡinclude ǥ쥯ȥ򥵡ˤɤΥǥ쥯ȥ򥵡ΤȤ롼Ǥȥǥ쥯ȥ꤫Хѥ򥵡ϤǤ <i>CURRENT</i> Ȥեinclude ˤΤǥ쥯ȥ꤫Хѥ򥵡ϤǤ <i>SOURCE</i> ȤޤξԤȹ碌Ǥ (<i>CURRENT</i> &amp; <i>SOURCE</i>) Ȥޤ<br>
</ul>

<h4><a name="4.1.1.3" href="#toc.4.1.1.3">4.1.1.3. ֹνϷ¾</a></h4>
<ul>
<li><samp><i>LINE_PREFIX</i></samp><br>
<b>mcpp</b>  compiler-proper ˥ե̾ȹֹꤷޤ<br>
<pre>
#line 123 "fname"
</pre>
ȤäΥηǥեȤȤʤäƤޤ¾ηȤϤǤϡ <samp>"#line "</samp> ʬ֤ sequence ʸƥǽ񤤤Ƥޤ<br>
<pre>
# 123 "fname"
</pre>
Ȥʤ <samp>"# "</samp> ɤǤʤȼηʤ餽˹碌ޤʾˤäƤ <samp>main.c</samp>  sharp() ˽­ʤФʤʤ⤷ʤˡ<br>
Visual C++ .net  Borland C Τ褦ʣѥѥʤ <b>mcpp</b> ȤϡȤ߹ߥץץå˽ϤϤȤˤʤΤǡ<b>mcpp</b> νϤϣäΥˤʤäƤʤФʤޤ󡣤äơֹμϤϣܤηǤʤФʤޤ<br>
<br>
<li><samp><i>EMFILE</i></samp><br>
<samp>&lt;errno.h&gt;</samp>  too many open files (for the process) ̣ errno ͤɽޥ <i>EMFILE</i> Ǥʤϡ<i>EMFILE</i> 򤽤Υޥ̾ޤʤ<samp>&lt;errno.h&gt;</samp> Τ˽񤭲äƤ⤫ޤʤˡ<br>
<li><samp><i>ONE_PASS</i></samp><br>
åȽϤץץåʬΥƤʤ֥ѥѥפǤФ <i>TRUE</i> ˡǤʤ <i>FALSE</i> ޤ <i>TRUE</i> Ȥȡ#pragma MCPP put_defines (#put_defines) ǤϡϤλޥϤ٤ƥȤǰϤǽϤޤѥѥǤ <b>mcpp</b> νϤ򤳤ͿȺ٥ץץ뤳ȤˤʤΤǡ򤱤뤿Ǥ<br>
GCC V.3, V.4 ϥѥѥȤޤΩץץåȤȤǤΤǡΥޥ <i>FALSE</i> ȤƤޤ<br>
<li><samp><i>FNAME_FOLD</i></samp><br>
Windows Τ褦˥ե̾ʸȾʸ̤ʤϣӤǤϤ <i>TRUE</i> Ǥʤ <i>FALSE</i> Ȥޤ<br>
</ul>

<h4><a name="4.1.1.4" href="#toc.4.1.1.4">4.1.1.4. Ϥθͤ˱</a></h4>
<ul>
<li><samp><i>EXPAND_PRAGMA</i></samp><br>
#pragma Ԥΰ STDC ʳǤХޥŸоݤȤʤϤǤϡ <i>TRUE</i> ޤǥեȤǤ <i>FALSE</i> ȤƤޤVisual C Ǥ #pragma ԤΰϾ˥ޥŸоݤȤʤΤǡ <i>TRUE</i> ȤޤC99 Ǥ #pragma ΰޥŸоݤȤʤ뤫ɤ implementation-defined ǡC90 ǤϥޥŸʤΤʤΤǤ<b>mcpp</b>  Visual C Ѥ˸¤äƤ C99 ǤʤƤޥŸоݤȤޤʰ STDC ޤ MCPP ǻϤޤʤ¤ˡ<br>
<br>
<li><samp><i>HAVE_DIGRAPHS</i></samp><br>
Digraphs Ƥ <i>TRUE</i>Ǥʤ <i>FALSE</i> Ȥޤ<br>
<li><samp><i>STDC</i></samp><br>
åȽϤλޥ <tt>__STDC__</tt> Υǥեͤޤ<tt>__STDC__</tt> Ƥʤ 0 Ȥޤ<br>
<li><samp><i>STDC_VERSION</i></samp><br>
åȽϤλޥ <tt>__STDC_VERSION__</tt> Υǥեͤޤ<tt>__STDC_VERSION__</tt> Ƥʤ 0L Ȥޤ<br>
<br>
<li><samp><i>CHARBIT, UCHARMAX, LONGMAX, ULONGMAX</i></samp><br>
åȽϤ <samp>&lt;limits.h&gt;</samp>  <tt>CHAR_BIT, UCHAR_MAX, LONG_MAX, ULONG_MAX</tt> ͤ񤭤ޤ<br>
<samp>limits.h</samp>  <tt>UCHAR_MAX</tt> ϴְäƤ礬ΤǡդɬפǤ255U, 0xffU  unsigned ˤƤϤޤ255, 0xff  signed int ͤޤ<a href=cpp-test.html#5.1.3>cpp-test.html#5.1.3</a> ȡˡ
</ul>

<h4><a name="4.1.1.5" href="#toc.4.1.1.5">4.1.1.5. Multi-byte character</a></h4>
<p><i>MBCHAR</i> Ȥޥ multi-byte character  encoding ꤹΤǤ<b>mcpp</b> Ǥϲο encoding ٤Ʊ˼ޤ<i>MBCHAR</i> ϥǥեȤ encoding ꤹǡ¹Ի encoding Ķѿץ#pragma ѹ뤳ȤǤޤʻȤˤĤƤ <a href=mcpp-manual.html#2.3>mcpp-manual.html#2.3</a>, <a href=mcpp-manual.html#2.8>mcpp-manual#2.8</a>, <a href=mcpp-manual.html#3.4>mcpp-manual.#3.4</a> 򻲾ȡˡ</p>
<ul>
<li><samp><i>MBCHAR</i></samp><br>
åȤ multi-byte characterܸǤϴˤ encoding μޤ<br>
<blockquote>
<table>
  <tr><th><i>EUC_JP</i>    </th><td>ܤ extended UNIX code (UJIS)</td></tr>
  <tr><th><i>SJIS</i>      </th><td>ܤ shift-JIS (MS-Kanji)</td></tr>
  <tr><th><i>GB2312</i>    </th><td> EUC-like  GB-2312ʴλ</td></tr>
  <tr><th><i>BIGFIVE</i>   </th><td>Ѥ Big5λ</td></tr>
  <tr><th><i>KSC5601</i>   </th><td>ڹ EUC-like  KSC-5601 (KSX 1001)</td></tr>
  <tr><th><i>ISO2022_JP</i></th><td>ISO-2022-JP1 Ȥݵʤܸ</td></tr>
  <tr><th><i>UTF8</i>      </th><td>unicode  encoding ΣǤ UTF-8</td></tr>
</table>
</blockquote>
ΣĤϤ shift-states ʤʸХȤ encoding Ǥʤmulti-byte character, wide character  encoding ХȤǤˤ⤫餺wchar_t ХȤηˤʤäƤϤ⤢ޤץץå wchar_t ηˤϴΤޤ󡣥Ǥ multi-byte character  wide character ХȤƤΤǡ˽äƽ򤷤ޤ<br>
ISO-2022-*  shift-states  encoding ǤUTF-8 ϣХȤ unicode 򣱥ХȤʤХȤ encode ΤǤϣХȤˤʤޤ<br>
<i>MBCHAR</i>  0 硢multi-byte character ν򤷤ʤΤǥեȤλͤˤʤǡĶѿץ#pragma Ǽ¹Իѹޤ<br>
<br>
<li><samp><i>SJIS_IS_ESCAPE_FREE</i></samp><br>
ѥΤ shift-JIS ν򤹤 <i>TRUE</i> Ȥʤ <i>FALSE</i> Ȥޤ<br>
Shift-JIS ǤϴΣХܤ '\\' Ʊ 0x5c ͤˤʤ뤳ȤޤѥΤ shift-JIS ǧʤϡ escape sequence ȲᤷƤޤtokenization ǥ顼ˤʤޤ<br>
<i>SJIS_IS_ESCAPE_FREE</i>  <i>FALSE</i> Ȥȡ<b>mcpp</b> 䤤ޤʤǽϤλˡʸƥޤʸ shift-JIS 裲ХȤ 0x5c Ǥäϡ 0x5c ΥХȤ⤦ղäޤˤäơѸǤΥѥ shift-JIS б뤳ȤǤޤ<br>
<li><samp><i>BIGFIVE_IS_ESCAPE_FREE</i></samp><br>
ƱͤˡѥΤ Big 5 ν򤹤Ϥ <i>TRUE</i> Ȥʤ <i>FALSE</i> Ȥޤ<br>
<li><samp><i>IS02022_JP_IS_ESCAPE_FREE</i></samp><br>
ƱͤˡѥΤ ISO-2022-JP ν򤹤Ϥ <i>TRUE</i> Ȥʤ <i>FALSE</i> ȤޤIS0-2022-* Ǥ '\\' ФǤʤ'\''  '"' ȰפХȤиޤ<i>ISO2022_JP_IS_ESCAPE_FREE</i>  <i>FALSE</i> ξ <b>mcpp</b> ϡ'\\', '\'', '"' ȰפХȤľˤ٤ 0x5c ΥХȤ򣱤ޤ<br>
</ul>
<p>ʤmulti-byte character ˴ؤ륳ѥưϼ¹ԤδĶˤäѤ礬ޤʬλȤĶ˹碌ꤷƤˤĤƤϡ<a href="mcpp-manual.html#2.8">mcpp-manual.html#2.8</a> ⻲ȤƤ</p>

<h4><a name="4.1.1.6" href="#toc.4.1.1.6">4.1.1.6. åȤȥۥȤ˶̤</a></h4>
<p>ΣĤص塢PART 2 ˽񤤤Ƥޤ
åȽϤȥۥȽϤηľ <i>TRUE</i> ȤǤʤ <i>FALSE</i> Ȥޤ</p>
<ul>
<li><samp><i>HAVE_LONG_LONG</i></samp><br>
long long ȤǡĽϤǤϤ <i>TRUE</i> Ȥޤ<br>
Visual C  2005 ޤǤ Borland C 5.5 Τ褦ˡlong long Ϥʤ __int64 ȤƱη printf() ɽ뤿 length modifier ѰդƤϡ <i>TRUE</i> Ȥޤ
Visual C 2008 Ǥ long long Ȥޤ<br>
<li><samp><i>HAVE_INTMAX_T</i></samp><br>
intmax_t ȤǡƤФ <i>TRUE</i> Ȥޤ<br>
<br>
<li><samp><i>LL_FORM</i></samp><br>
νϤ long long äƤϡۥȽϤκͤ printf() ɽ뤿 length modifier ʸƥޤC99 Ǥ "j" ǤޤC99 Ǥ long long  length modifier  "ll" (ell-ell) ǤVisual C  2003 ޤǤ Borland C 5.5 Ǥ __int64 ͤɽ "I64" ȤޤMinGW Ǥ "I64" Ǥ<br>
</ul>

<h3><a name="4.1.2" href="#toc.4.1.2">4.1.2. PART 2  ۥȥƥ</a></h3>
<p><samp>noconfig.H, configed.H</samp> ǤϥåȽϤȥۥȽϤȤƱǤȲꤷƤޤۤʤ PART 2 ľɬפޤ</p>
<ul>
<li><i>HOST_HAVE_STPCPY</i></samp><br>
ۥȽϤΥ饤֥ stpcpy()  <i>TRUE</i> ˡʤ <i>FALSE</i> ޤ<i>FALSE</i> Ǥ stpcpy() ˤ <samp>system.c</samp> ΤΤȤޤ<br>
<li><samp><i>PATHMAX</i></samp><br>
ۥȽϤ <samp>&lt;limits.h</samp>&gt;  <tt>PATH_MAX</tt> ͤǤ
 POSIX ǵꤵƤޥǤ줬ʤϤǤ <samp>&lt;stdio.h</samp>&gt;  <tt>FILENAME_MAX</tt> ͤȤޤ<br>
</ul>
<p>PART 1 ˤۥȤȥåȤƱȲꤷƤʬΤǡɬפʤ餽񤭴ޤ㤨мΤ褦˥ۥȽϤλޥȤäƤԤǤ</p>
<pre>
#if _MSC_VER &gt;= 1200
</pre>

<h3><a name="4.1.3" href="#toc.4.1.3">4.1.3. PART 3  <b>mcpp</b> ưͤ</a></h3>

<h4><a name="4.1.3.1" href="#toc.4.1.3.1">4.1.3.1. Ƽư⡼</a></h4>
<p><samp>system.H</samp> Ǥ <b>mcpp</b> ưͤꤹޥƤޤ</p>
<p><b>mcpp</b> ˤ mcpp_mode Ȥѿꡢ줬ޥŸˡȤǥ쥯ƥ֡Ȥ predefined ޥץץåκȤʤưλͤƤޤmcpp_mode ͤˤ <i>OLD_PREP, KR, STD, POST_STD</i> Σ郎ޤ<br>
<b>mcpp</b> ư⡼ɤϼ¹Իץǻꤵޤ<b>mcpp</b> 򥳥ѥ뤹ˤϡΣĤΥޥˤĤƤϲꤹ뤳ȤϤޤ󡣤ƼԤˤϣĤưͤΰ㤤򤹤뤳ȤɬפǤ<br>
Τۤ <i>COMPAT</i> ⡼ɤ⤢ޤ <i>STD</i> ѼǤ</p>
<ul>
<li><samp><i>OLD_PREP</i></samp><br>
 "Reiser" model cpp ưͤǤ<br>
<li><samp><i>KR</i></samp><br>
C90  K&amp;R 
1st. ΥץץͤǤ<br>
<li><samp><i>STD</i></samp><br>
 (C90, C99, C++98) 
ΥץץͤǤ<br>
<li><samp><i>POST_STD</i></samp><br>
ɮԤ˺äץץͤǡ
ʤμӤʤñ㲽ΤǤ<br>
</ul>
<p>Ǥ 
<i>KR</i>  <i>OLD_PREP</i> 碌 pre-Standard ⡼ɡ<i>STD</i>  <i>POST_STD</i> 碌 Standard ⡼ɤȸƤ֤Ȥˤޤƥ⡼ɤλͤξܺ٤ˤĤƤ <a href="mcpp-manual.html#2.1">mcpp-manual.html#2.1</a> 򻲾ȤƤ</p>

<h4><a name="4.1.3.2" href="#toc.4.1.3.2">4.1.3.2. ư⡼ɤκλ</a></h4>
<ul>
<li><samp><i>CPLUS</i></samp><br>
-+ ץ C++ ΥץץåȤưˡ
ɸȤ߹ߥޥ <tt>__cplusplus</tt> ͤ˻ޤC++98 Ǥ 199711L Ǥ-V ץˤäƼ¹ԻѹǤޤ<br>
<li><samp><i>TRIGRAPHS_INIT</i></samp><br>
<i>STD</i> ⡼ɤǤ trigraph ν֤ꤷޤ-3 ץϤξ֤ȿžޤ <i>TRUE</i> ˤȡdefault  trigraph ǧ졢-3 ץǵưǧޤ<i>FALSE</i> ξϵդ default ǧ-3 ץǧ褦ˤʤޤ<br>
<li><samp><i>DIGRAPHS_INIT</i></samp><br>
Standard ⡼ɤǤ digraph ν֤ꤷޤ-2 ץϤξ֤ȿžޤ <i>TRUE</i> ˤȡdefault  digraph ǧ졢-2 ץǵưǧޤ<i>FALSE</i> ξϵդ default ǧ-2 ץǧ褦ˤʤޤ<br>
<i>HAVE_DIGRAPHS</i> == <i>FALSE</i> νϤξ硢digraphs  <b>mcpp</b> ̾ΥȡѴޤ<br>
<li><samp><i>OK_UCN</i></samp><br>
<i>STD</i> ⡼  -V199901L ޤ -+ ץꤷ UCN (universal-character-name) ͭˤˤϡ <i>TRUE</i> ޤǥեȤǤ <i>TRUE</i> ȤƤޤ*1<br>
<li><samp><i>OK_MBIDENT</i></samp><br>
<i>STD</i> ⡼  -V199901L ץꤷȤ identifier  multi-byte character Ȥ褦ˤˤϡ <i>TRUE</i> ޤǥեȤǤ <i>FALSE</i> ȤƤޤ<br>
<br>
<li><samp>expr_t, uexpr_t</samp><br>
Ǥ礭η 
typedef ޤintmax_t, uintmax_t ȤФˡǤʤ long long, unsigned long long ĽϤǤϤˡǤʤ __int64, unsigned __int64 ĽϤǤϤˡǤʤ long, unsigned long ޤ<br>
<li><samp><i>EXPR_MAX</i></samp><br>
uexpr_t κͤޤ<br>
</ul>
<p>:</p>
<p>*1 UCN  C++, C99 λͤǡUnicode ʸͤ \u ޤ 
\U ǻϤޤ룱 escape sequence ɽΤǤ<a href="mcpp-manual.html#3.7">mcpp-manual.html#3.7</a>, 
<a href="cpp-test.html#2.8">cpp-test.html#2.8</a>, 
<a href="cpp-test.html#4.6">cpp-test.html#4.6</a> ȡˡ
</p>

<h4><a name="4.1.3.3" href="#toc.4.1.3.3">4.1.3.3. Translation limits λ</a></h4>
<ul>
<li><samp><i>RESCAN_LIMIT</i></samp><br>
Standard ⡼ɤǤΥޥŸκθ٤ޤ
Standard ⡼ ǤϺϾʤΤǡޤ礭ͤꤹɬפϤޤ<br>
<li><samp><i>PRESTD_RESCAN_LIMIT</i></samp><br>
pre-Standard ⡼ɤǤΥޥŸκθ٤ޤpre-Standard ⡼ ǤϺƵŪʥޥŸˤä̵¥롼פȯޤ줬ΥߥåȤˤҤäޤ<br>
<li><samp><i>NBUFF</i></samp><br>
ԡʥʪԤι \ ä³ԡˤκĹ +1 ޤȤ a space ѴιԡʥȤˤäʣԤˤޤ뤳Ȥ⤢ꤦˤ⤳ĹˤޤäƤʤФʤޤ<br>
<li><samp><i>NMACWORK</i></samp><br>
ޥŸŪʥХåեΥޤʤĤΥޥŸ̡ʥޥƤӽФʣԤˤޤϡŸ̡ˤϤΥˤޤäƤʤФʤޤ󡣤ϤޤĤΥޥִꥹȤŪ˵ݤκĹȤƤȤޤ <i>NBUFF</i>*2 ʾ <i>NWORK</i>*2 ʾǤʤФʤޤ<br>
<li><samp><i>NWORK</i></samp><br>
<b>mcpp</b> νϤĹޤ compiler-proper μĹ+1 ۤƤϤޤ󡣤ޤ<i>NBUFF</i> ͤۤƤ⤤ޤ󡣥ޥŸιĹۤϡ<b>mcpp</b> ʲιĹʬ䤷ƽϤޤʸƥĹ <i>NWORK</i>-2 ϰϤ˼ޤäƤʤФʤޤʸƥĹȤΤϡchar ǿΤȤǤϤʤǤʸƥȤȡĹǤ롣ξü " ޤߡ\n ϣХȤȿ롣磻ʸƥǤƬ L ޤˡ<br>
GCC Ǥ Visual C ǤǤϽϤκĹȤƤ <i>NWORK</i> ǤϤʤ <i>NMACWORK</i> Ȥޤ
νϤǤϥѥ餬ʤĹԤ뤳ȤǤΤǡʬ䤷ƽϤɬפʤǤ<br>
<li><samp><i>IDMAX</i></samp><br>
̻ҤκĹޤĹ̾⥨顼ˤϤʤޤ󤬡Ĺڤͤޤ<br>
<li><samp><i>NMACPARS</i></samp><br>
ؿͥޥΰκޤ <i>UCHARMAX</i> 礭ϤǤޤ<br>
<li><samp><i>NEXP</i></samp><br>
#if ԤμΥåǤͥȥ٥θ٤ޤϥͥȥ٥뤬ľܷޤ櫓ǤϤʤΤˤϡȡοΣܡ黻ҥȡοΣܤޤǻȤ롣äϰФǣĤȿˡ<br>
<li><samp><i>BLK_NEST</i></samp><br>
#if (#ifdef, #ifndef) section Υͥȥ٥θ١#if, etc. ʳ˥ͥȤǤ뤫ˤޤ<br>
<li><samp><i>INCLUDE_NEST</i></samp><br>
#include Υͥȥ٥θ٤ޤ#include ̵ºƵå뤿ΤΤǤƱ˥ץǤեο˴ؤ OS ¤ĶƤƤ⤫ޤޤ<br>
<li><samp><i>SBSIZE</i></samp><br>
ޥŪ 
hash ʬषƵݤ hash table ǿޤɬΥ٥ǤʤФʤޤ󡣥ޥο꾮Ƥưˤޤ礭ۤϤ®ʤޤ<br>
</ul>
<p>줾礭ͤˤۤɻͤϾˤʤޤ<i>NWORK</i>, <i>NBUFF</i>, <i>NMACWORK</i>, <i>SBSIZE</i> 礭Ȥ礭ʥ򿩤ޤºݤΥϥޥ̤ˤäƤƤ椭ޤʤ줾ΥޥĹˤäɬץ꤬ޤ롣ޥŪʷ <samp>internal.H</samp>  struct defbuf ˽񤤤Ƥˡ</p>
<p><i>NMACWORK</i>, <i>NEXP</i>, <i>RESCAN_LIMIT</i> ϥå񤷤ޤ<br>
¾ΤΤϥϤۤɬפȤޤ󤬡
<samp>system.H</samp> ΥǥեȤͰʾˤƤѾΰ̣ϤۤȤɤʤǤ礦</p>
<p>C90, C99 ׵᤹ translation limits κ٤ <samp>system.H</samp> κǸΤۤ˽񤤤ƤޤC++98  translation limits 񤤤ƤޤϣäȰۤʤꡢ׵ͤǤϤޤ</p>
<br>

<h2><a name="4.2" href="#toc.4.2">4.2. system.c</a></h2>
<p>ȤƥåȽϤ˴ؤ뤤ĤƤޤ</p>
<ul>
<li><samp><i>PATH_DELIM</i></samp><br>
ϣӤ path-delimiter Ƥޤ<i>PATH_DELIM</i>  \ ȤƤϤޤʥץΤĤǡˡWindows Ǥ / ȤƤޤ桼ץǤϤ \ ȤޤŪˤ / Ѵޤ<br>
<li><samp><i>OBJEXT</i></samp><br>
Ϥ뤤륪֥ȥեҤʸƥޤUNIX νϤ "o"Windows νϤ "obj" Ǥ -M* ץꤷ makefile Ѱ¸طԤνϤ˻ȤΤǤ<br>
<br>
<li><samp>do_options()</samp><br>
<b>mcpp</b> ưΥץƤޤޤܿƤʤϤ˰ܿˤϡν°Υѥɥ饤Ф˹碌ơ˲Ԥ­ȤɬפǤ礦do_options() ɲäϡбƼ set_opt_list(), usage() ˤ­ޤ<br>
do_options()  mcpp_getopt() ƤӽФޤmcpp_getopt()  POSIX  getopt() ƱͤǤ
ΤᡢĤΥץʸϰʤΤɤ餫˷ʤФʤޤ-P  -P- ȤäץλȤϸ§ȤƤǤޤʤ°ΥץץåȤθߴΤɬפʾϡ̵Ǥʤʤ-M ץμ򻲾ȡˡޤ-trigraphs ȤäĹץ t 򥪥ץʸȤ rigraphs Ȥ뤳ȤǼ뤷ޤ<br>
<li><samp>set_opt_list()</samp><br>
do_options() ǻȤץʸꤷޤ<br>
<li><samp>usage()</samp><br>
Usage ʸ񤫤Ƥޤ
⡼ɤȤΥץ󤬥ե٥åȽ¤٤Ƥޤ<br>
<li><samp>set_sys_dirs()</samp><br>
Include directory ꤷƤޤ<samp>noconfig.H (configed.H)</samp> Υޥ <i>C_INCLUDE_DIR?</i>, <i>CPLUS_INCLUDE_DIR?</i> ǻꤵ줿ϸͭΥǥ쥯ȥΤۤUNIX ϣϣӤǤ /usr/include, /usr/local/include ⤳ꤷƤޤ<samp>noconfig.H, configed.H</samp> Υޥ <i>ENV_C_INCLUDE_DIR</i>, <i>ENV_CPLUS_INCLUDE_DIR</i> 줿̾δĶѿˤ include directory  set_env_dirs() ꤵˡ<br>
<br>
<li><samp>do_pragma()</samp><br>
#pragma νƤޤ<b>mcpp</b> Ȥʤ #pragma sub-directive ϤΤޤ޽Ϥ compiler-proper Ϥޤ<b>mcpp</b> Ȥ #pragma MCPP debug ϤƤӽФؿǽޤ<b>mcpp</b> Ȥ #pragma sub-directive ϸ§Ȥ MCPP Ȥ̾ǻϤޤ褦ˤƤޤMCPP ǻϤޤ #pragma ԤΤΤϽϤޤ󡣤ޤ #pragma once Ϥޤ󡣤#pragma __setlocale ԤϽϤޤʤǤϽϸͭγĥ directive  #pragma sub-directive ȤƼ뤳ȤˤʤäƤޤ<br>
<li><samp>do_old()</samp><br>
ʤ˹פʤ preprocessing directive #pragma sub-directive Ǥʤ #assert, #asm, #endasm, #include_next, #warning, #put_defines, #debug ˤɬפʾϡν򤹤ؿ­ǡ餽ƤӽФ褦ˤޤʤGCC ѤǤ #include_next, #warning  <i>STD</i> ⡼ ǤȤ褦ˤƤˡ<br>
</ul>
<p>Standard C ˤϤʤ饤֥ؿΤgetopt()  stpcpy() Υ˽񤤤Ƥޤ
getopt() ϥ󥯤Υȥ֥ɤᡢmcpp_getopt() ̾ѤƤޤ
stpcpy()  HOST_HAVE_STPCPY  FALSE λ˻Ȥޤ</p>
<br>

<h2><a name="4.extra" href="#toc.4.extra">4.extra. malloc()</a></h2>
<p>kmmalloc -- ǥХåǽ malloc()פȤΤϡ䤬äǽ񤤤 malloc(), free(), realloc(), calloc()  portable ʥǤϥΨȤȤˡǥХåΤĤͤƽ񤤤ƤޤǥХåѤΥ롼źդƤޤ󥯤Ƥȡפ̥ХҤääƤ뤳Ȥޤ*1, *2</p>
<p>noconfig/*.mak  -DKMMALLOC -D_MEM_DEBUG -DXMALLOC ȤץͿƤΤϡλ malloc() ȥǥХå롼󥯤뤿ΤΤǤ󥯤 <b>mcpp</b> <i>EFREEP</i>, <i>EFREEBLK</i>, <i>EALLOCBLK</i>, <i>EFREEWRT</i>, <i>ETRAILWRT</i> Ȥ顼ֹ exit 뤳ȤС <b>mcpp</b> ΥХ̣ޤ<br>
<p><i>BSD_MALLOC</i>, <i>DB_MALLOC</i>, <i>MALLOC_DBG</i> ȤޥΤɤ줫 1  <b>mcpp</b> 򥳥ѥ뤹ȡ malloc() Ȥ̤Τ줾ǥХåǽä malloc() ȤޤˤƤ⡢°ΤΤǤϤʤ malloc() Ȥˤϡѥ뤹˥饤֥äƤʤФʤޤ󡣤ˤĤƤ kmmalloc ΥɥȤ򸫤Ƥ</p>
<p>:</p>
<p>*1 kmmalloc ϼΤȤˤ롣
</p>
<blockquote>
<p><a href="http://download.vector.co.jp/pack/dos/prog/se026997.html">http://download.vector.co.jp/pack/dos/prog/se026997.html</a></p>
</blockquote>
<p>*2 CygWIN Ǥϥ饤֥ȤΩƤ¾ malloc() Ȥʤ褦ˤʤäƤΤǡ malloc() ϻȤäƤʤ
Visual C 2005, 2008 ǤƱͤǤ롣</p>
<br>

<h1><a name="5" href="#toc.5">5. ХȰܿ</a></h1>

<h2><a name="5.1" href="#toc.5.1">5.1. Хɤ</a></h2>
<p>ץץ Standard C Ŭ򸡾ڤ뤿 Validation Suite  <b>mcpp</b> Ȥä˸ƤޤStandard C ΥץץΤ٤Ƥε򸡾ڤǤΤˤĤǤ<b>mcpp</b> ϤȤäƥåƤޤ⡢嵭Τ٤ƤνϤǥѥ뤷ƥåƤޤäơХͤϤۤȤɤʤȻפޤޤĤĤäƤ붲⤢ޤޤܿƤʤϤ˿ܿϡϤΥХˤҤäǽ⤢ޤ</p>
<p>⤷ԲIJưȯ줿顢Ҥ𤯤κݤˤϡΥå򤪴ꤤޤ</p>
<ol>
<li><i>STD</i> ⡼ɤξ硢ʬ Standard C Τ뤿ᡢޤ Validation Suite ȤäƤߤ롣GCC / testsuite λȤ륷ƥǤϡץդ configure  make check ǼưƥȤǤ롣<br>
<li>ʬ <b>mcpp</b> ΰܿ˴ְ㤤ϤʤɤɥȤΤ롣<br>
<li>ХƸ륵ץ륽Ф롣<br>
<li>ХФʬ 
#pragma MCPP debug &lt;args&gt;  #pragma MCPP end_debug ǤϤ <b>mcpp</b> ưȥ졼Ƥߤ롣 &lt;args&gt; 򤵤䤷Ƥܺ٤˥ȥ졼Ƥߤ롣<br>
</ol>
<p>⤷"Bug: ..." ȤǥåФ顢ϴְ㤤ʤ <b>mcpp</b> ޤϽϤΡʤ֤ <b>mcpp</b> Ρ˥ХǤޤȤ㤯ʡ֥פǤ⡢򿩤碌뤳Ȥ <b>mcpp</b> ˽ʤ顢ХǤ<br>
Standard C ⡼ɰʳΥ⡼ɤ <b>mcpp</b>  Validation Suite Ǥϡְִ㤤פ餱ư򤷤ޤϻͤǤʤǤ˽ϤʤϤˡɤͤ <a href="#4.1.3">4.1.3</a> 򸫤Ƥ</p>
<br>

<h2><a name="5.2" href="#toc.5.2">5.2. malloc() ϢΥХå</a></h2>
<p>䤬񤤤 kmmalloc Ȥ malloc() Υ饤֥꤬ޤ<a href="#4.extra">4.extra</a> ȡˡ
<br>
⤷Τ malloc() 󥯤 <b>mcpp</b>  120  124ʽϤˤäƤ 
2120  2124ˤΥ顼ֹ exit 뤳ȤСϴְ㤤ʤ <b>mcpp</b> ޤϽϤΡʤ֤饤֥ؿΡ˥ХǤ</p>
<p>ޤƥȤ˻Ȥץ륽Τɤ</p>
<pre>#pragma MCPP debug memory</pre>
<p>Ƚ񤤤Ƥȡ
θĽꤪӽλ˥ҡץ˴ؤ󤬽Ϥޤ Heap error: ... ȤåФ뤳ȤСְ㤤ʤ <b>mcpp</b> ޤϽϤΥХǤ</p>
<p>ΥХȯ줿顢ץ륽γʬ #if 0  #endif ǤϤǥƥȤ򷫤֤ХȯʬʤǤߤƤ</p>
<br>

<h2><a name="5.3" href="#toc.5.3">5.3. Х</a></h2>
<p>ХˤϼΤ褦ʥǡդƤ褦ꤤޤ</p>
<ol>
<li><b>mcpp</b> ܿϡ<br>
<li>ܿˡ<samp>noconfig.H</samp> ˡ
<br>
<li>ХȻפΤƸǤ륵ץ륽
<br>
<li>ν̡
</ol>
<br>

<h2><a name="5.4" href="#toc.5.4">5.4. ܿ</a></h2>
<p><b>mcpp</b> ϤۤȤɤνϤŪñ˰ܿǤ褦˽񤤤ƤĤǤ
䤬äƤϤϾǤ¾νϤؤΰܿǤϥν­ɬפʤϤǤνϤؤΰܿԤƤޤ򥽡˥եɥХåƤȻפޤ<br>
ܿϼΤ褦ʷǤꤤޤ</p>
<ol>
<li>ϡ
<br>
<li><samp>noconfig.H (configed.H), system.H, system.c</samp> ꡣ
ʤ٤ꥸʥȤκʬե뤬ɤñʤΤʤǤġ<br>
</ol>
<p>ܿǤɤΤˤϡcompiler-specific-build Ǥϡޤץץåؤơإåե "pre-preprocess" εǽȤäƼʬȤꥳѥ뤷ƤߤΤüᤤǤ礦</p>
<p> Validation Suite  <i>STD</i> ⡼ɤΥå򤷤ޤϥեο¿ΤǡǥХå򷫤֤ˤϼ֤ꤹޤǥХåϤޤn_std.c 򥳥ѥ뤷ơ˥ѥ롦¹Ԥ뤫ɤ򸫤ޤ°Υѥɥ饤ФǤ <b>mcpp</b> ϤˡΤʤץ⤢ޤˤĤƤ <a href="mcpp-manual.html#2.2">mcpp-manual.html#2.2</a> 򸫤Ƥ <b>mcpp</b> ̤Ƥ饳ѥ뤹⤢ޤ</p>
<p>⤷줬ޤʤϡ n_std.t ȤץȤäơɤΤܤǥåޤ줬ޤä顢e_std.t, m_*.t, unspcs.t, warns.t, misc.t åޤ"post-Standard" ⡼ɤǤ n_post.t, e_post.t Ȥޤ</p>
<p> cpp -QCz23 Ȥץդƽޤpost-Standard ⡼ɤǤ -3 Բġˡ<i>STDC</i> == 0 ǥѥ뤷Ƥ -S1 -V199409L ץդޤ-C ץǥȤϤΤǡ̤̤꤫ɤ狼ޤ<br>
-Q ץǿǥå mcpp.err Ȥե˽ϤΤǡڡ㡼ɤߤޤ<br>
-z ץǡإåեνϤϾάޤ<br>
-2 -3  
digraph  trigraph ͭˤʤޤ-S1 -V199409L  <tt>__STDC__</tt>  1  <tt>__STDC_VERSION__</tt>  199409L ˤʤޤ<br>
C99 бΥƥȤ򤹤뤿ˤϡ-V199901L ץդ n_std99.t, e_std99.t Υå򤷤ޤ</p>
<p>Validation Suite  <samp>cpp_test.c</samp> ȤץȤȡn_*.c, i_*.c ΥץΥƥȤưŪ˹ԤȤǤޤʤϡߤĤǡܺ٤Ϥ狼ʤޤe_*.?, u_*.?, unspcs.?, warns.? ΥƥȤϴޤޤʤ<b>mcpp</b> ȤΥƥȤ򤹤뤿ˤϡn_std.c 򥳥ѥ뤹ۤᤤˡ</p>
<p>ʤValidation Suite  GCC  testsuite бƤޤäơ<b>mcpp</b>  GCC Τɤ줫ΥС˰ܿϡGCC / testsuite 󥹥ȡ뤵ƤСGCC Υץץå <b>mcpp</b> ֤ȡ<b>mcpp</b> μưƥȤǤޤˤĤƤ <a href="cpp-test.html#3.2.3">cpp-test.html#3.2.3</a>, 
<a href="mcpp-manual.html#3.9.7">mcpp-manual.html#3.9.7</a> 򸫤Ƥ
</p>
<br>

<h2><a name="5.5" href="#toc.5.5">5.5. GCC ʳνϤǤ configure ξ</a></h2>
<p><b>mcpp</b>  UNIX ϥƥǤ configure ץȤȤޤ
UNIX ϥƥǤ GCC ʳνϤˤĤƤϻϤޤäΤʤΤǡcompiler-specific-build  configure ǤϤĤΥץꤷƤʤФʤޤ</p>
<p>ΥץǻꤹƤˤĤƤϡνϤȤäƤͤΤäƤ뤫ޤĴ٤뤳ȤǤϤǤ狼ϤҶƤConfigure ˼Ǥ椭Ȼפޤ<br>
Configure ˤĤƤ INSTALL </p>
<br>

<h2><a name="5.6" href="#toc.5.6">5.6. ǡäƤаܿƤߤޤ</a></h2>
<p>ܿޤʤϡΤ褦Τ餻<br>
ΥǡդƤС֤ܿǤ뤫⤷ޤConfigure λȤĶǤϡΥǡΤΤʤʬ configure ˤäΤ뤳ȤǤޤ<br>
ʤC90 (ANSI C) бƤʤϤϡ<b>mcpp</b> V.2.6 ϰܿоݤ鳰ޤ</p>
<ol>
<li>ϣӤȤΥѥꥹȤηʻ UNIX , DOS/Windows , OS-9 Τʤˡ<br>
<li>Ϥ̾ȥС<br>
<li>ʸåȤ ASCII 
ǤʤФɤʸåȤMulti-byte characterʴˤ encoding ϥե JIS  EUC-JP ȤⲿShift-JIS Τ褦 &lt;backslash&gt; Ʊɤ multi-byte character ˴ޤޤ encoding ξ硢ѥΤϤǧ뤫<br>
<li>ShellʥޥɥץåˤʸȾʸ̤뤫<br>
<li>ե̾ʸȾʸ϶̤뤫
<br>
<li>¹Իץ󡣥ѥɥ饤ФϤ륪ץ
ץץåñΤưΥץgetopt() ǼǤʤΤԲġˡ<br>
<li>ץץåʬΥƤϤȤ⤤ѥѥ餫<br>
<li>νϤλޥȤ͡C++ λϤɤʤ뤫ʥѥɥ饤Ф -D ץǥץץåϤޥȡץץåȤޥȤ̤뤳ȡˡ<br>
<li>long long Ϥ뤫long long 硢printf() Ǥ long long  length modifier ϲlong long ʤƤƱη뤫<br>
<li>#pragma 
ԤΰϥޥŸоݤȤʤ뤫<br>
<li>Include directory 
ꤹĶѿˤϤɤ̾ȤĶѿʣΥѥ򵭽Ҥ separator ˤϲȤ<br>
<li>̾Ȥ include directory#include ǥإåե򥵡ε§<br>
<li>ɬפʴؿǡ饤̵֥Τ뤫<br>
<li>ѥΤ 
digraph ǧ뤫<br>
<li>̻Ҥ $ Ȥ
<br>
<li>#asm, #endasm Ϥ뤫
ǤϤޤ줿֥åΥѥΤؤμϤϤɤ¾εʳ directive ˤϤɤʤΤ뤫<br>
<li>ץץåǽ٤ #pragma sub-directive ˤϲ뤫<br>
<li>ѥΤĹϤɤΤ餤ޤǤValidation Suite ˤ <samp>test-l/l_37_8.c</samp> 򥳥ѥ뤹Ȥ狼ˡ<br>
<li>ѥΤǤϡ̻ҤϲХȤޤǼ̤뤫<br>
<li>ѥ塢
Ρ֥֥ȥեפҤϲUNIX νϤ .o  Windows νϤ .obj Ρˡ<br>
<li> <samp>t_line.c</samp> Ȥץץץå̡̤ñΥץץåȤޤϥץǥץץνϤꤹˡϹֹȥե̾ξ򥳥ѥΤϤˡ򸫤뤿ΤΤǤ롣<samp>&lt;stdio.h&gt;</samp> ƤĹΤǡ򥫥åȤƺǽΣԤȺǸΣԤнʬǤ롣<br>
ˡ#line 1000 줿̤ #line 1000 "t_line.c" Ȥʤ餺 #1000 "t_line.c" Ȥ¾ηˤʤϤǤϡʬ #line 1000 "t_line.c" ȽؤƥѥΤϤơǧǤ뤫ɤ򸫤#line 1000 "t_line.c" ǥ顼ˤʤʤ error line; ιԤǥ顼åФϤǤ뤬λ˹ֹ椬ɤФ뤫ˡ<br>
</ol>
<pre>
/* t_line.c */
#include    &lt;stdio.h&gt;

#line 1000

error line;

main( void)
{
    return  0;
}
</pre>
<p>ۥȽϤȥåȽϤ㤦ϤˤĤƾ嵭ΥǡСȤʤǤ礦</p>
<p>¤٤Ƥߤȡå٤Ȥ֤󤿤󤢤ޤ͡¿νϤǤϰܿߤνϤȶ̤¿Ǥ礦顢ưΰܿǤФۤɤμ֤ǤϤʤϤǤŪ֤ΤΤϼ¹Իץ #pragma˵ʳͤμǤϰư褦ˤʤäƤ顢ˤäƤ椯ȤǤޤͣݤʤΤϡϤΥХˤҤääǤ</p>
<br>

<h2><a name="5.7" href="#toc.5.7">5.7. ڥåȤˤ¾νϤΥƥ</a></h2>
<p>䤬äƤϤΥץץåθڥåȤǥƥȤ̤ϡ<a href=cpp-test.html#6>cpp-test.html#6</a> ˤޤȤƤޤ<br>
¾νϤˤĤƥƥȤ̤Τ餻ܤ¿ΤǤʤμ֤Ǥ<br>
<samp>cpp_test.c</samp> ˤƥȤǤм֤ϤʤΤǡǤ⤪ꤤޤGCC ξϡڥåȤˤ뼫ưƥȤǤޤ</p>
<br>

<h2><a name="5.8" href="#toc.5.8">5.8. Τո</a></h2>
<p>ХΤۤˤ⡢<b>mcpp</b> λȤꡢǥå<b>mcpp</b> ΥValidation Suite Standard C ᡢɥȤνʤɤˤĤƤո򤪴󤻤<br>
̣ǺäץץåǤV.2.0 ޤǤǤ⣶ǯȾ⤫ƶŤ˶ŤäϫǤŤĤǤˤǤɤΤˤȻפäƤޤåץץåˤĤƤϡλäƤʤϤؤΰܿȥƥȰʳϡäựΤ뤳ȤϤۤȤɤ٤ƤäĤǤ¿Ȥ꤬ĤäƤС줿Ȼפޤ<br>
Martin Minow ΥϤȤƤ⤭줤ʡΤʤ狼䤹ΤǡɤǤˤȤäƤϤ֤ٶˤʤޤ<br>
Τ˶̣ĿͤϤʤ¤ƤȻפޤ¿ΥȤȾԤƤޤ<br>
ոȾ</p>
<p><a href="http://mcpp.sourceforge.net/">http://mcpp.sourceforge.net/</a></p>
<p> "Open Discussion Forum" ޤϥ᡼Ǥꤤޤ
</p>
<br>

<h1><a name="6" href="#toc.6">6. <b>mcpp</b> ĹƻΤ</a></h1>

<h2><a name="6.1" href="#toc.6.1">6.1. ۣǯ</a></h2>
<p>1992/01  DECUS cpp 򤤤ˤϡ
ĹˤʤȤ̴ˤפޤǤ٤ߤˤ礳äȥС󥢥åפƤߤ褦ȻפääΤǤ<br>
ϤơɤޤʤȥȤ狼ꡢ餤ɤߤޤɤߤΤ륽äǤ⤢ޤˤĤλͤ C90 б˥С󥢥åפޤޤǤṲ̄Ǥ</p>
<p>ǻϼʬ C90 ΥץץͤΤˤΤäƤʤȤ˵դޤP. J. Plauger &amp; Jim Brodie "Standard C" (1989) ɤȤfunction-like ޥŸˡϡҤä֤ΤǤʤˮϤƤˡǵʽäơץץ˴ؤʸϤ򤯤֤ɤߤޤη̡C90 ΥץץŪʤΤȤ¿ǰۤʤäƤ뤳Ȥ狼ޤ#, ## 黻Ҥɲä줿ȤϡΤۤΰʬˤʤäΤǤ</p>
<p>Ȥ function-like ޥŸ롼ˤϤʤƬǺޤޤE. Ream  cpp Υ򻲹ͤˣֹͤơC90 ѥޥŸ롼򿷤񤭤ޤ䤬ץΥ르ꥺǤʤ˰̿ͤΤϡˤˤʤȤǤ1992/04 ΤȤǤ</p>
<p>ơƽۤơ٤ cpp ϤޤȻפäΤǤȤ줫餵ˣǯޤꤿäƤޤޤȤäƤ⡢δ֤ˤϤۤƬǺޤϤʤäΤǤˤ⤫餺֤Ϥ֤󤫤ޤͤͤ˰Ƥơcpp ˽椷ʤʤä⤢ޤǤϤޤ󡣤δ֤ˤäΤϼΤ褦ʤȤǤ</p>
<ol>
<li>ͤ򤵤Τˤ롣Standard ⡼ɤǤϵʤ˴б롣<br>
<li>Standard C Υ⡼ɤ濴˥ץ๽¤ǡ¤ƹ롣<br>
<li>Portability 夲뤿ᡢΥѤ롣<br>
<li>ǥХå򤹤롣
ϤΥХн褹롣<br>
<li>ƥȥץहʤ Validation 
Suite 롣<br>
<li>¾νϤΥƥȤ򤹤롣
<br>
<li>ɥȤ񤯡
<br>
<li>1997/07 ˤϿѥäᡢƻȤ WindowsNT/95, 
X Window System ȤΥեȤΥ󥹥ȡȽɤ줿Ƥ뤦 C99-1997/11 draft ФơؤбɬפȤʤä<br>
</ol>
<p>Ǥ֤ΤäΤϥɥȤǤȤ˸ȾΣǯ餤ϥ򤤤ä֤ϤۤξǡɥȽ񤭤ȤȾƤޤѤʬ̤ˤʤäƤޤޤ֤äΤ̤¿ФǤϤޤ󡣥ɥȤ񤤤ƤȡͤΤʤȤȽФƤΤǤΤӤ˵ʽɤ֤򾯤Ĥޤ򤤤ä֤ϾʤƤ⡢Ͼʤޤ󡣵ʽץץǤϤʤΤ ANSI C  Rationale ޤƤ褯ɤǤߤޤϥץץå뤳Ȥ̤ C90 ٶ򤷤褦ʤΤǤˤϤ̤ơC90 εΤİ뤳ȤǤޤ</p>
<p>ƥȥץϽϴñʥץܤ񤤤ǤȤ񤤤 cpp ƥȤ뤿Ӥ˰ճʥХĤΤǤǡC90 ץץƥȤ Validation Suite 񤯤ȤˤޤơValadation Suite 񤯤Ȥ̤ơC90 餫ˤʤäƤޤC90 Ե§ʬбΤϡʬˤȤäƤϤ鷺路ФǤޤ̣ΤʤȤǤ̣ΤʬΤۤϤ뤫¿äȤϳΤǤ<br>
κȤ̤ƻ䤬ؤΤϡΤ褦ʤȤǤ</p>
<ol>
<li>ץλͤϡ
ܺ٤ʥɥȤ񤭽ޤdzꤷʤ<br>
<li>ץΥǥХåϡ
ͤƥȤ륵ץ뤬ޤǽʤ<br>
</ol>
<p>ιͤϴŪʤΤǤ
ΤȤϴǤϤޤ椫ʤΤ¿ץ㳰ǤϤޤ󤬡ˤϴפʰ̣ʬ⤢ޤϤϤΰĤǤ礦<br>
̣鲿ǯ⤫ŰŪˤ뤳ȤǤȤޤˤƤ⣶ǯȾĹޤʤ˻֤򤫤ƴʥץäơä줬ȤΤȤ䤬ä³Ƥޤ̣ǺץȤƤϡΤ餤Ϥθ٤ʤΤǤ礦</p>
<p><b>mcpp</b> Ϥ⤦äƤޤäΤǡƥʥ󥹤򤷤ƤĤǤäǤ鳧󡢥ȡ𡢰ܿ򤪴ꤤޤ</p>
<br>

<h2><a name="6.2" href="#toc.6.2">6.2. V.2.3 </a></h2>
<p>V.2.0 塢 V.2.1, V.2.2, V.2.3  update 򷫤֤ޤC99 ˾ǧ줿 ISO / C++ бꡢбϤ䤷ꡢХȤäȤΤƤǤ</p>
<p>V.2.2 ޤǤϴñ update ǤƤޤV.2.2  V.2.0 飳äƤޤ󡣤ȤV.2.3  V.2.2 飴ǯޤ⤿äƤޤޤοդ¿˻ˤʤꡢ֤ȤʤʤäΤʸǤ2000/07  60 ФˤʤäơŻ򽵣˸餷Ƥ顢餫֤Ȥ褦ˤʤꡢcpp ޤ</p>
<p>V.2.3 ϻ֤Ǥʤ֤ŪäƤޤGCC V.2.9x ˼ƤߤȤGCC / cpp ȤθߴݤΤˤʤäʤФʤʤȤ狼äǤ¿ΥץɲäĥͤޤޤΥ顼򥦥˥󥰤˳ʲꡢȯ륦˥󥰤ǥեȤΥ˥󥰥饹Ϥꤷơʤˤ¤¤Ƥޤ</p>
<p>ѹ¿ϸΤΤǤꡢڤΤǤϤޤǤȤ C90  "traditional" ʻͤΰ C99 λͤξΩʤФʤʤȤΤϡϤʤϤܰդʤȤǤ줬ߤΥץ󥽡μ¾ǤСˤٹ碌ΤϤ򤨤ޤ<br>
ʤˤ¤Ȥǡ¾νѤǤ⡢°Υץץå֤ƻȤˤϻȤ䤹ʤäȻפޤ</p>
<br>

<h2><a name="6.3" href="#toc.6.3">6.3. ̤Ƨեȥ¤ȡפ˺</a></h2>
<p>V.2.3 ؤ update ǡ<b>mcpp</b>  Validation Suite Ͼȶ (IPA) ʿǯ١̤Ƨեȥ¤ȡפȤΤ˺򤵤ޤޤޤλȤΤȤΤäΤDZ礷ƤߤȤ ͵ץȥޥ͡㤬򤷤Ƥ줿ΤǤ 2002/07  2003/02 ޤǤ IPA λȿУͤνΤȤˡȯʤ뤳ȤˤʤޤɥȤα⡢ϥ뤬Ƥ뤳Ȥˤʤޤ</p>
<p>Ūեȥʤ⡢֤򤫤Υ饤եΤ褦ˤʤäƤޤäΤǤδ٤ˤϼޤ˽Ф뵡񤬤ʤǰʻפ򤷤Ƥޤε񤬤ĤͿ줿ΤǤϤΥץȤԤ뤿ᡢŻ򽵣˸餷ޤ<br>
䤬ΥץȤǤ뤳ȤȤƹͤΤϡΤ褦ʤȤǤ</p>
<ol>
<li>ѸǤΥɥȤ롣Ȥäơ<b>mcpp</b> ȸڥåȤŪɾξ˽ФƤ椯ýϤȾȤʤäƤ븽ǤϡѸǥɥȤ¸ߤɾڤΤɬܤǤ롣<br>
<li>ܿоݤ򹭤롣ޤбƤϤοСбۤΤμפʽϤؤΰܿʤ롣<br>
</ol>
<p>˿ PM 鼡Ƥޤ</p>
<ol>
<li>GCC 3.x ˤܿ
ˤ testsuite ǻθڥåȤѤǤ褦ˤ롣
<li>ȯ򥪡ץʷǿʤƤ椯
ȯȤ̤ͭ䤹褦ˡɸŪʤѤ롣
</ol>
<p>伫Ȥ⤳ϤҤꤿȤǤΤǡ
Ƿײɲäޤ<br>
ȤηײٱٱŤͤޤ
ޤǥå˸ޤޤȤ򤹤뤿Ӥ˻ȤäȤΤʤեȥȤäơΤӤ˻֤ޤGCC 򥽡饳ѥ뤷ΤƤǤϤĤΥȥ֥˸ޤ̤ΥɥȤι̤αΥåȽˤ⡢ʤλ֤ޤξ塢Ȥ֤ޤȯޤץȤϻΤνϤؤбײΰǰ̤Ȥʤޤ</p>
<p>ϤޤǰĤη򿼤äƤ椯褦ʤȤƤʤäΤǡ򾯤褦ȤȤҤɤ֤äƤޤΤǤޥ奢ץޤ򷡤겼ˤϡ򤷤ʤФǤ뤳ȤǤϤޤ󡣤̤˽Фˤϡ򤤤餫ʤФʤʤΤǤ<br>
򹭤ǡϿ PM νޤơĤ̤иΥեȥȯȤΤ˿뤳ȤǤޤʬʸϤʤ줿ʸäƤΤ⡢Ѥ줷ȤǤ֤ɤΤ϶줷ȤǤƤϤɤ⿷dzڤȤǤ</p>
<p>̤Ƨեȥ¤ȡפϤǤޤǤϤޤǤʿǯ٤ˤ⡢ ץȥޥ͡㤬 <b>mcpp</b> ³ץȤȤƺ򤷤Ƥ줿ΤǤơǯ٤Ѥ߻ĤβȤơˤȤäƤ̤иΰΤĤβ˼ȤळȤȤʤޤ</p>
<p>ΣǯΥѥ˥ȥ֥뤬ȯϡɥ OS  upgrade ǤˤĤΥȥ֥˸ޤ̤иΥեȥνˤ֤פȯϤϤ٤쵤̣ǤäౡŪˤʤäƤ֤ץȤͤ˶ŤΤ¹ԤưˤưʤäƤȤ⡢ۤμǤ 2004 ǯ 2 ˻ˡϣУͤɸ̵ΤʤȤꤷƤ줿ǡƤˤäȲ˼ȤळȤǤޤ</p>
<p>Visual C++ ؤΰܿconfigure ץȤκ¿ͤ multi-byte character encoding ؤбβã뤳ȤǤޤޤɤȤΩʤʤԤȤƤϤΤˤȤߤޤܸǤȱѸǤΥɥȤιȤ֤ΤȤ⡢ϥζϤã뤳ȤǤޤ</p>
<p>̤ˤäơϰϣУͤ鲿ȡ֥ѡꥨפȤɾ뤳ȤǤޤμϤˤȤäƤϲʬɾǤĹǯˤ錄 <b>mcpp</b> Ѥ߽ŤͤǧƤΤȻפѴǤޤ</p>
<p>ǯ᤯ˤ錄̤ƧեȥפΥץȤˤäơ<b>mcpp</b> ʼ C/C++ ץץå˻ž夬äĤǤǯΥޥ奢ץޤȤϤʤ褯äȼʬǤǼƤޤ</p>
<p>̤ƧեȥΥץȤäƤ⡢<b>mcpp</b> βɺȤ³ƤޤޤĤβ꤬ĤäƤޤβã<b>mcpp</b> ڤ뤿ˡ¤˼Ȥߤ³Ƥ椯ĤǤ</p>
</body>
</html>