Next: C++ Compiler, Previous: Generic Compiler Characteristics, Up: Compilers and Preprocessors [Contents][Index]
°Ê²¼¤Î¥Þ¥¯¥í¤Ï¡¤C¥³¥ó¥Ñ¥¤¥é¤òõ¤·»ÈÍѤ¹¤ëÊýË¡¤òÄ󶡤·¤Þ¤¹¡¥Èò¤±¤¿¤Û¤¦¤¬ Îɤ¤¹½À®Êª¤â¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¤¬¡¤¤½¤ì¤é¤ÏÍÆ°×¤Ë²óÈò²Äǽ¤Ê¤Î¤Ç¡¤Ä´ºº¤Ë»ÈÍÑ ¤·¤Æ¤¤¤ë¤Ê¤é̵¤¯¤·¤Æ¤·¤Þ¤¦¤³¤È¤â¤Ê¤¤¤Ç¤·¤ç¤¦¡¥
¤½¤ì¤é¤Ï¡¤HP-UX C¥³¥ó¥Ñ¥¤¥é¤Ë¤¢¤ë¥Ð¥°¤Ë¤Ï¤á¤é¤ì¤Þ¤¹(HP-UX¤Î10.20¡¤11.00¡¤ ¤½¤·¤Æ11i¤ÇÄ´ºº¤·¤Þ¤·¤¿)¡¥°Ê²¼¤Î¥½¡¼¥¹¤ò¥³¥ó¥Ñ¥¤¥é¤Ç¼Â¹Ô¤·¤Þ¤¹¡¥
#ifdef __STDC__ /\ * A comment with backslash-newlines in it. %{ %} *\ \ / char str[] = "\\ " A string with backslash-newlines in it %{ %} \\ ""; char apostrophe = '\\ \ '\ '; #endif
°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥
error→cpp: "foo.c", line 13: error 4048: Non-terminating comment at end of file. error→cpp: "foo.c", line 13: error 4033: Missing #endif at end of file.
ñ°ì¤Î¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤òÍѤ¤¤¿¹Ô¤òºï½ü¤¹¤ë¤³¤È¤Ç¡¤ÌäÂê¤ò²ò·è¤Ç¤¤Þ¤¹¡¥
HP¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥é¤Ë¤Ï¡¤¥Õ¥¡¥¤¥ë¤¬Ê£¿ô¤Î¤È¤¡¤¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¤ ¤ë¥Õ¥¡¥¤¥ë̾¤òÊó¹ð¤¹¤ë¤â¤Î¤â¤¢¤ê¤Þ¤¹¡¥Î㤨¤Ð°Ê²¼¤Î¤â¤Î¤Ç¤¹¡¥
$ cc a.c b.c a.c: b.c:
¼ºÇÔ¤ò¸¡½Ð¤¹¤ë¤¿¤á¤Ë¡¤¥³¥ó¥Ñ¥¤¥é¤Î½ÐÎϤò´Ñ»¡¤¹¤ë¾ì¹ç¡¤¤³¤ì¤ÏÌäÂê¤Ë¤Ê¤ë¤Ï ¤º¤Ç¤¹¡¥‘cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c’¤Ç¸Æ¤Ó ½Ð¤¹¤³¤È¤ÇÌäÂê¤ò²ò·è¤·¤Þ¤¹¡¥
#line
¤Î¥µ¥Ý¡¼¥È¤Ë°Í¸¤·¤Ê¤¤¤Ç²¼¤µ¤¤Solaris 8¾å¤Ç¡¤c89
(Sun WorkShop 6 update 2 C 5.3 Patch
111679-08 2002/05/09))¤Ï¹ÔÈÖ¹æÁ´ÂΤÇ32767¤è¤êÂ礤Ê#line
»Ø¼¨¸ì¤ò
µñÀ䤷¤Þ¤¹¡¥¤µ¤é¤ËPOSIX¤Ç¤Ï¡¤¤³¤ì¤Ï͸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó¡¥¤³¤ì¤Ï¡¤
Autoconf¤¬#line
»Ø¼¨¸ì¤ÎÀ¸À®¤òÄä»ß¤·¤¿Íýͳ¤Ç¤¹¡¥
»ÈÍѤ¹¤ëC¥³¥ó¥Ñ¥¤¥é¤ò·èÄꤷ¤Þ¤¹¡¥CC
¤¬´Ä¶ÊÑ¿ô¤ÇÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì
¹ç¡¤gcc
¤Ècc
¤òÄ´ºº¤·¡¤¤½¤Î¸å¤Ç¾¤ÎC¥³¥ó¥Ñ¥¤¥é¤òÄ´ºº¤·¤Þ¤¹¡¥
½ÐÎÏÊÑ¿ôCC
¤ò¡¤¸«¤Ä¤«¤Ã¤¿¥³¥ó¥Ñ¥¤¥é¤Î̾Á°¤ËÀßÄꤷ¤Þ¤¹¡¥
¤·¤«¤·¡¤¤³¤Î¥Þ¥¯¥í¤Ï¥ª¥×¥·¥ç¥ó¤ÇºÇ½é¤Î°ú¿ô¤òÍѤ¤¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¤â²Äǽ¤Ç¡¤
¤½¤ì¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¤¤½¤ì¤ò¥¹¥Ú¡¼¥¹¤Ç¶èÀÚ¤é¤ì¤Æ¤¤¤ë¸¡º÷¤¹¤ëC¥³¥ó¥Ñ
¥¤¥é¤Î¥ê¥¹¥È¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥¤³¤ì¤Ï¡¤Ê̤ÎC¥³¥ó¥Ñ¥¤¥é¤Î¸¡º÷¥ê¥¹¥È¤ò
»ØÄꤹ¤ëµ¡²ñ¤ò¥æ¡¼¥¶¤ËÍ¿¤¨¤Þ¤¹¡¥Î㤨¤Ð¡¤¥Ç¥Õ¥©¥ë¥È¤Î½ç½ø¤¬¹¥¤¤Ç¤Ï¤Ê¤¤¾ì
¹ç¡¤°Ê²¼¤Î¤è¤¦¤ÊAC_PROG_CC
¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬²Äǽ¤Ç¤¹¡¥
AC_PROG_CC(cl egcs gcc cc)
C¥³¥ó¥Ñ¥¤¥é¤¬¥Ç¥Õ¥©¥ë¥È¤ÇANSI C¥â¡¼¥É¤Ç¤Ê¤¤¾ì¹ç¡¤¤½¤¦¤¹¤ë¤¿¤á
¤Î¥ª¥×¥·¥ç¥ó¤ò½ÐÎÏÊÑ¿ôCC
¤ËÄɲä·¤Þ¤¹¡¥¤³¤Î¥Þ¥¯¥í¤Ï¡¤ÍÍ¡¹¤Ê¥·¥¹¥Æ
¥à¤ÇANSI C¤òÁªÂò¤¹¤ë¤è¤¦¤Ë¡¤ÍÍ¡¹¤Ê¥ª¥×¥·¥ç¥ó¤ò»î¤·¤Þ¤¹¡¥´Ø¿ô¤Î
¥×¥í¥È¥¿¥¤¥×¤òÀµ¤·¤¯½èÍý¤¹¤ë¾ì¹ç¡¤¥³¥ó¥Ñ¥¤¥é¤¬ANSI C¥â¡¼¥É¤À¤È
¹Í¤¨¤Þ¤¹¡¥
¤³¤Î¥Þ¥¯¥í¤ò¸Æ¤Ó½Ð¤·¤¿¸å¡¤C¥³¥ó¥Ñ¥¤¥é¤¬ANSI C¤ò¼õ¤±Æþ¤ì¤ë¤è¤¦
¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤òÄ´ºº¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¤¥·¥§¥ë
ÊÑ¿ôac_cv_prog_cc_stdc
¤Ï‘no’¤ËÀßÄꤵ¤ì¤Þ¤¹¡¥¥½¡¼¥¹¥³¡¼¥É¤ò
ANSI C¤Ç½ñ¤¤¤Æ¤¤¤ë¾ì¹ç¡¤AutomakeÉí°¤Î¥×¥í¥°¥é¥à
ansi2knr
¤ò»ÈÍѤ·¤Æ¡¤ÈóANSIfied¤µ¤ì¤¿¥³¥Ô¡¼¤òºîÀ®¤¹¤ë¤³
¤È¤¬²Äǽ¤Ç¤¹¡¥AC_C_PROTOTYPES
°Ê²¼¤â»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡¥
GNU C¥³¥ó¥Ñ¥¤¥é¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¤¥·¥§¥ëÊÑ¿ô¤ÎGCC
¤ò
‘yes’¤ËÀßÄꤷ¤Þ¤¹¡¥½ÐÎÏÊÑ¿ôCFLAGS
¤¬¤¤¤Þ¤ÀÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì
¹ç¡¤GNU C¥³¥ó¥Ñ¥¤¥é¤ËÂФ·¤Æ¤Ï-g -O2¤ËÀßÄꤷ(GCC¤¬
‘-g’¤ò¼õ¤±Æþ¤ì¤Ê¤¤¥·¥¹¥Æ¥à¤Ï‘-O2’)¡¤¤½¤ì°Ê³°¤Î¥³¥ó¥Ñ¥¤¥é¤ËÂФ·
¤Æ¤Ï-g¤ËÀßÄꤷ¤Þ¤¹¡¥
C¥³¥ó¥Ñ¥¤¥é¤¬‘-c’¤È‘-o’¥ª¥×¥·¥ç¥ó¤òƱ»þ¤Ë¼õ¤±Æþ¤ì¤Ê¤¤¾ì¹ç¡¤
NO_MINUS_C_MINUS_O
¤òÄêµÁ¤·¤Þ¤¹¡¥¤³¤Î¥Þ¥¯¥í¤Ï¡¤AC_PROG_CC
¤Ç¸«¤Ä¤«¤Ã¤¿¥³¥ó¥Ñ¥¤¥é¤È¡¤¥Ñ¥¹¤ÎºÇ½é¤Îcc
¤¬¤½¤ì¤È°Û¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç
¤Ï¤½¤ÎξÊý¤ò¡¤¼ÂºÝ¤Ë¥Æ¥¹¥È¤·¤Þ¤¹¡¥°ì¤Ä¤Ç¤â¼ºÇÔ¤·¤¿¾ì¹ç¡¤¥Æ¥¹¥È¤Ï¼ºÇÔ¤·¤Þ
¤¹¡¥¤³¤Î¥Þ¥¯¥í¤Ï¡¤GNU Make¤¬¥Ç¥Õ¥©¥ë¥È¤Î¥³¥ó¥Ñ¥¤¥ë¥ë¡¼¥ë¤òÁªÂò
¤¹¤ë¤è¤¦¤ËºîÀ®¤µ¤ì¤Þ¤·¤¿¡¥
½ÐÎÏÊÑ¿ôCPP
¤ò¡¤C¥×¥ê¥×¥í¥»¥Ã¥µ¤ò¼Â¹Ô¤¹¤ë¥³¥Þ¥ó¥É¤ËÀßÄê¤Þ¤¹¡¥
‘$CC -E’¤¬Æ°ºî¤·¤Ê¤¤¾ì¹ç¡¤/lib/cpp¤ò»ÈÍѤ·¤Þ¤¹¡¥³ÈÄ¥»Ò¤¬
.c¤Î¥Õ¥¡¥¤¥ë¤ÇCPP
¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ï°Ü¿¢À¤Î¤¿¤á¤À¤±¤Ç¤¹¡¥
¥×¥í¥»¥Ã¥µ¤Ë¤è¤Ã¤Æ¤Ï¡¤Â¤ê¤Ê¤¤¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò¥¨¥é¡¼¥¹¥Æ¡¼¥¿¥¹¤Ç¼¨
¤µ¤Ê¤¤¤â¤Î¤â¤¢¤ê¤Þ¤¹¡¥¤½¤Î¤è¤¦¤Ê¥×¥í¥»¥Ã¥µ¤ËÂФ¹¤ëÆâÉôÊÑ¿ô¤Ï¡¤¥×¥ê¥×¥í¥»¥Ã
¥µ¤«¤é¤Îɸ½à¥¨¥é¡¼¤òÄ´ºº¤¹¤ë¤¿¤á¤Î¾¤Î¥Þ¥¯¥í¤òÀßÄꤷ¡¤·Ù¹ð¤¬Êó¹ð¤µ¤ì¤¿¾ì
¹ç¤Ï¥Æ¥¹¥È¤Ë¼ºÇÔ¤·¤¿¤ÈȽÃǤ·¤Þ¤¹¡¥¤½¤ì¤Ë¤â¤«¤«¤ï¤é¤º¡¤¤Û¤È¤ó¤É¤Î¥×¥ê¥×¥í
¥»¥Ã¥µ¤ËÂФ·¤Æ¡¤AC_PROG_CPP_WERROR
¤â»ØÄꤷ¤Ê¤¤¸Â¤ê¡¤·Ù¹ð¤Ç¥¤¥ó¥¯
¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥Æ¥¹¥È¤Ï¼ºÇÔ¤·¤Þ¤¹¡¥
¤³¤ì¤ÏAC_PROG_CPP
¤Î¤è¤¦¤Ëưºî¤·¤Þ¤¹¤¬¡¤¥×¥ê¥×¥í¥»¥Ã¥µ¤«¤é¤Î·Ù¹ð¤ò¡¤
¥×¥ê¥×¥í¥»¥Ã¥µ¤¬À®¸ù¤·¤¿¤³¤È¤ò¼¨¤¹¥¹¥Æ¡¼¥¿¥¹¤Ç½ªÎ»¤·¤¿¾ì¹ç¤Ç¤â¡¤¥¨¥é¡¼¤¬
¤¢¤Ã¤¿¤È¤·¤Æ½èÍý¤·¤Þ¤¹¡¥¤³¤ì¤Ï¡¤¿ä¾©¤µ¤ì¤Ê¤¤Ãí°Õ¤Î¤è¤¦¤Ê¡¤¶¯À©Åª¤Ê·Ù¹ð¤ò
À¸À®¤¹¤ë¥Ø¥Ã¥À¤òÈò¤±¤ë¤È¤¤ËÌò¤ËΩ¤Á¤Þ¤¹¡¥
°Ê²¼¤Î¥Þ¥¯¥í¤Ï¡¤C¥³¥ó¥Ñ¥¤¥é¤ä¥Þ¥·¥ó¥¢¡¼¥¥Æ¥¯¥Á¥ã¤ÎÆÃħ¤òÄ´ºº¤·¤Þ¤¹¡¥¤³
¤³¤Ç¥ê¥¹¥È¥¢¥Ã¥×¤µ¤ì¤Ê¤¤ÆÃħ¤òÄ´ºº¤¹¤ë¤¿¤á¤Ë¡¤AC_COMPILE_IFELSE
(see Running the Compiler)¤äAC_RUN_IFELSE
(see Run Time)
¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥
C¥³¥ó¥Ñ¥¤¥é¤¬‘\a’¤òÍý²ò¤¹¤ë¾ì¹ç¡¤‘HAVE_C_BACKSLASH_A’¤ò1¤ËÄêµÁ ¤·¤Þ¤¹¡¥
(Motorola¤ÈSPARC¤ÎCPU¤Î¤è¤¦¤Ë)word¤¬ºÇ¾å°Ì¥Ð¥¤¥È¤ËºÇ½é¤ËÊݸ¤µ¤ì¤ë¾ì¹ç¡¤ action-if-true¤ò¼Â¹Ô¤·¤Þ¤¹¡¥(Intel¤ÈVAX¤ÎCPU¤Î¤è¤¦¤Ë)word¤¬ºÇ²¼°Ì ¥Ð¥¤¥È¤ËºÇ½é¤ËÊݸ¤µ¤ì¤ë¾ì¹ç¡¤action-if-false¤ò¼Â¹Ô¤·¤Þ¤¹¡¥
¥·¥¹¥Æ¥à¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤«¤é¥¨¥ó¥Ç¥£¥¢¥ó¤ò·èÄêÉÔ²Äǽ¤Ê¾ì¹ç¡¤¤³¤Î¥Þ¥¯¥í¤Ï¥Æ ¥¹¥È¥±¡¼¥¹¤ò¼Â¹Ô¤·¤Þ¤¹¡¥¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¡¤¥Æ¥¹¥È¥±¡¼¥¹¤Ï¼Â¹Ô¤µ¤ì¤Þ¤» ¤ó¤¬¡¤¤¤¤¯¤Ä¤«¤Î¥Þ¥¸¥Ã¥¯ÊÑ¿ô¤ò¸¡º÷¤·¤Þ¤¹¡¥¸å¼Ô¤Î¾õ¶·¤Ç¥Û¥¹¥È¥·¥¹¥Æ¥à¤Î¥Ð ¥¤¥ÈÆÃÀ¤Î·èÄê¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¡¤action-if-unknown¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡¥
action-if-true¤Î¥Ç¥Õ¥©¥ë¥È¤Ï‘WORDS_BIGENDIAN’¤òÄêµÁ¤¹¤ë¤³¤È¤Ç ¤¹¡¥action-if-false¤Î¥Ç¥Õ¥©¥ë¥È¤Ï²¿¤â¤·¤Ê¤¤¤³¤È¤Ç¤¹¡¥¤½¤·¤ÆºÇ¸å¤Ë¡¤ action-if-unknown¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¡¤¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤òÃæÃǤ·¡¤¥¤ ¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤ë¿Í¤Ë¡¤¤³¤Î¥Æ¥¹¥È¤ò¥Ð¥¤¥Ñ¥¹¤µ¤»¤ë¤¿¤á¤ËÊÑ¿ô¤òÁ°¤â¤Ã¤ÆÄê µÁ¤¹¤ë¤è¤¦ÅÁ¤¨¤Þ¤¹¡¥
C¥³¥ó¥Ñ¥¤¥é¤¬ANSI C¤Î½¤¾þ»Òconst
¤ò´°Á´¤Ë¥µ¥Ý¡¼¥È¤·¤Ê¤¤
¾ì¹ç¡¤ const
¤ò¶õ¤ÇÄêµÁ¤·¤Þ¤¹¡¥__STDC__
¤òÄêµÁ¤·¤Ê¤¤C¥³¥ó¥Ñ
¥¤¥é¤Ë¤Ï¡¤const
¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤â¤Î¤â¤¢¤ê¤Þ¤¹¡¥__STDC__
¤òÄê
µÁ¤¹¤ëC¥³¥ó¥Ñ¥¤¥é¤Ë¤Ï¡¤const
¤ò´°Á´¤Ë¥µ¥Ý¡¼¥È¤·¤Ê¤¤¤â¤Î¤â¤¢¤ê¤Þ¤¹¡¥
Á´¤Æ¤ÎC¥³¥ó¥Ñ¥¤¥é¤¬const
¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤«¤Î¤è¤¦¤Ë¡¤¥×¥í¥°¥é¥à¤Ï¤½
¤ì¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡¥¥µ¥Ý¡¼¥È¤·¤Ê¤¤¤â¤Î¤Î¤¿¤á¤ËMakefile¤ä
¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ï¡¤¤½¤ì¤ò¶õ¤ÇÄêµÁ¤·¤Þ¤¹¡¥
C¥³¥ó¥Ñ¥¤¥é¤¬Ìµ¤¤¤¿¤á¤Ë¡¤¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤ë¿Í¤¬C¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë
¤¿¤á¤ËC++¥³¥ó¥Ñ¥¤¥é¤ò»ÈÍѤ¹¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡¥C¤ÈC++¤Ïconst
¤ò°Û¤Ê
¤ëÊýË¡¤Ç½èÍý¤¹¤ë¤Î¤Ç¡¤¤³¤ì¤Ïconst
¤ÎÌäÂ꤬À¸¤¸¤Þ¤¹¡¥Î㤨¤Ð¡¤°Ê²¼¤Î
¤è¤¦¤Ë¤·¤Þ¤¹¡¥
const int foo;
C¤Ç¤Ï͸ú¤Ç¤¹¤¬C++¤Ç¤Ï¤½¤¦¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥»Äǰ¤Ê¤¬¤é¡¤¤³¤ì¤é¤Î°ã¤¤¤ò
const
¤ò¶õ¤ÇÄêµÁ¤¹¤ë¤³¤È¤Ç¸íËâ²½¤¹¤³¤È¤ÏÉÔ²Äǽ¤Ç¤¹¡¥
autoconf
¤¬¤³¤Î¾õ¶·¤ò¸¡½Ð¤·¤¿¾ì¹ç¡¤°ìÈÌŪ¤Ë¼ÂºÝÌäÂê¤È¤·¤Æ¤è¤êÎÉ
¤¤·ë²Ì¤Ë¤Ê¤ë¤Î¤Ç¡¤¤½¤ì¤Ïconst
¤Î¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¤Þ¤¹¡¥¤·¤«¤·¡¤C ¥³¡¼
¥É¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤á¤ËC++¥³¥ó¥Ñ¥¤¥é¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¿ä¾©¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¤·¡¤
¥µ¥Ý¡¼¥È¤â¤·¤Æ¤¤¤Þ¤»¤ó¡¥¤½¤·¤Æ¡¤¤³¤Î¾õ¶·¤ÇÌäÂ꤬À¸¤¸¤¿¥¤¥ó¥¹¥È¡¼¥ë¼Ô¤Ï¡¤
C¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤á¤ËGCC¤Î¤è¤¦¤ÊC¥³¥ó¥Ñ¥¤¥é¤òÆþ¼ê¤¹¤Ù¤¤Ç¤¹¡¥
C¥³¥ó¥Ñ¥¤¥é¤¬restrict
¥¡¼¥ï¡¼¥É¤òǧ¼±¤¹¤ë¾ì¹ç¤Ï²¿¤â¤·¤Þ¤»¤ó¡¥
(__restrict
¡¤__restrict__
¡¤¤Þ¤¿¤Ï_Restrict
)¤È¤¤¤¦¡¤
¤«¤ï¤Ã¤¿¤Ä¤Å¤ê¤À¤±¤òǧ¼±¤¹¤ë¾ì¹ç¡¤restrict
¤ò¤½¤ì¤ËÄêµÁ¤·¤Þ¤¹¡¥¤½
¤ì°Ê³°¤Ç¤Ï¡¤restrict
¤ò¶õ¤ÇÄêµÁ¤·¤Þ¤¹¡¥¤³¤Î¤¿¤á¡¤¥×¥í¥°¥é¥à¤Ç¤Ï
restrict
¤ò¤¹¤Ù¤Æ¤ÎC¥³¥ó¥Ñ¥¤¥é¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ë¡¤Ã±½ã¤Ë
»ÈÍѤ·¤Æ¤«¤Þ¤¤¤Þ¤»¤ó¡¥¤½¤¦¤·¤Ê¤¤¿Í¤Ï¡¤Makefile¤ä¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç
¥ó¥Ø¥Ã¥À¤Ç´èÄ¥¤Ã¤ÆÄêµÁ¤·¤Æ²¼¤µ¤¤¡¥
C++¤Ç¤Îrestrict
¥¡¼¥ï¡¼¥É¥µ¥Ý¡¼¥È¤ÏÍ׵ᤵ¤ì¤Æ¤¤¤Þ¤»¤ó¤¬¡¤¤¤¤¯¤Ä¤«
¤ÎC++¥³¥ó¥Ñ¥¤¥é¤Ï¤½¤Î¥¡¼¥ï¡¼¥É¤ò¼õ¤±Æþ¤ì¤Þ¤¹¡¥¤³¤Î¥Þ¥¯¥í¤Ï¡¤¤½¤³¤Ç¤âư
ºî¤·¤Þ¤¹¡¥
C¥³¥ó¥Ñ¥¤¥é¤¬¥¡¼¥ï¡¼¥Évolatile
¤òÍý²ò¤·¤Ê¤¤¾ì¹ç¡¤volatile
¤ò¶õ¤ÇÄêµÁ¤·¤Þ¤¹¡¥¥×¥í¥°¥é¥à¤Ç¤Ïvolatile
¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥³¥ó¥Ñ
¥¤¥é¤Î¤è¤¦¤Ëñ½ã¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥¥µ¥Ý¡¼¥È¤·¤Ê¤¤¤â¤Î¤ËÂФ·¤Æ¤Ï¡¤
Makefile¤ä¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥Ø¥Ã¥À¤Ç¡¤¤½¤ì¤ò¶õ¤È¤·¤ÆÄêµÁ¤µ¤ì¤Þ
¤¹¡¥
¥×¥í¥°¥é¥à¤ÎÀµÅöÀ¤¬volatile
¤Î°ÕÌ£¤Ë°Í¸¤·¤Æ¤¤¤ë¾ì¹ç¡¤Ã±½ã¤Ë¶õ¤Ç
ÄêµÁ¤¹¤ë¤È¤¢¤ë°ÕÌ£¤Ç¤Ï¥³¡¼¥É¤¬²õ¤ì¤Þ¤¹¡¥¤·¤«¤·¡¤volatile
¤ò¥µ¥Ý¡¼
¥È¤·¤Æ¤¤¤Ê¤¤¥³¥ó¥Ñ¥¤¥é¤Ç¤Ï¡¤¼«Ê¬¤Ç²¿¤È¤«¤·¤Æ¤¯¤À¤µ¤¤¡¥¾¯¤Ê¤¯¤È¤â¥×¥í¥°¥é
¥à¤Ï¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¤¬¡¤Â¿Ê¬ÂÌÌܤǤ·¤ç¤¦¡¥
°ìÈÌŪ¤Ë¡¤volatile
¥¡¼¥ï¡¼¥É¤ÏANSI C¤Îµ¡Ç½¤Ê¤Î¤Ç¡¤
__STDC__
¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¤¤À¤±¡¤volatile
¤¬ÍøÍѲÄǽ¤À¤È´ü
ÂÔ¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡¥¤·¤«¤·¡¤Ultrix 4.3¤Î¥Í¥¤¥Æ¥£¥Ö¥³¥ó¥Ñ¥¤¥é¤Ï
volatile
¤ò¥µ¥Ý¡¼¥È¤È¤·¤Æ¤¤¤Þ¤¹¤¬¡¤__STDC__
¤òÄêµÁ¤·¤Þ¤»¤ó¡¥
C¥³¥ó¥Ñ¥¤¥é¤¬¥¡¼¥ï¡¼¥Éinline
¤ò¥µ¥Ý¡¼¥È¤¹¤ë¾ì¹ç¡¤²¿¤â¤·¤Þ¤»¤ó¡¥¤½
¤ì°Ê³°¤Ç¤Ï¡¤¼õ¤±Æþ¤ì¤é¤ì¤ë¤â¤Î¤Ë¤è¤Ã¤Æ¡¤inline
¤ò__inline__
¤ä__inline
¤ËÄêµÁ¤·¡¤¤½¤ì°Ê³°¤Ç¤Ïinline
¤ò¶õ¤ÇÄêµÁ¤·¤Þ¤¹¡¥
C¤Î·¿char
¤¬unsigned¤Î¾ì¹ç¡¤C¥³¥ó¥Ñ¥¤¥é¤¬Á°¤â¤Ã¤ÆÄêµÁ¤·¤Æ¤¤¤Ê¤¤¸Â
¤ê¡¤__CHAR_UNSIGNED__
¤òÄêµÁ¤·¤Þ¤¹¡¥
C¥³¥ó¥Ñ¥¤¥é¤¬¡¤double
¤Î·¿°Ê¾å¤ÎÈÏ°Ï¤ÇÆ°ºî¤¹¤ëlong double
¤Î·¿¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¡¤HAVE_LONG_DOUBLE
¤òÄêµÁ¤·¤Þ¤¹¡¥
C¥×¥ê¥×¥í¥»¥Ã¥µ¤¬Ê¸»úÎóºîÀ®¥ª¥Ú¥ì¡¼¥¿¤ò¥µ¥Ý¡¼¥È¤¹¤ë¾ì¹ç¡¤
HAVE_STRINGIZE
¤òÄêµÁ¤·¤Þ¤¹¡¥Ê¸»úÎóºîÀ®¥ª¥Ú¥ì¡¼¥¿¤Ï‘#’¤È¡¤°Ê
²¼¤Î¤è¤¦¤Ê¥Þ¥¯¥í¤Ç¸«¤Ä¤«¤ê¤Þ¤¹¡¥
#define x(y) #y
´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×¤ò¥³¥ó¥Ñ¥¤¥é¤¬Íý²ò¤¹¤ë¾ì¹ç(AC_PROG_CC
¤Ç·èÄꤵ¤ì
¤Þ¤¹)¡¤‘PROTOTYPES’¤È__PROTOTYPES
¤òÄêµÁ¤·¤Þ¤¹¡¥¥³¥ó¥Ñ¥¤¥é¤¬
¥×¥í¥È¥¿¥¤¥×¤ò½èÍý¤·¤Ê¤¤¾ì¹ç¡¤´Ø¿ôÄêµÁ¤Î¥×¥í¥È¥¿¥¤¥×¤ò»ß¤á¤ë¤¿¤á¤Ë¡¤
AutomakeÇÛÉÛʪ¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ëansi2knr
¤ò»ÈÍѤ¹¤Ù¤¤Ç¤¹¡¥´Ø¿ô
¤Î¥×¥í¥È¥¿¥¤¥×¤ËÂФ·¤Æ¡¤ºÇ½é¤ËPARAMS
¤òÄêµÁ¤¹¤Ù¤¤Ç¤¹¡¥
#ifndef PARAMS # if PROTOTYPES # define PARAMS(protos) protos # else /* no PROTOTYPES */ # define PARAMS(protos) () # endif /* no PROTOTYPES */ #endif
¤½¤·¤Æ¡¤°Ê²¼¤Î¤è¤¦¤Ë»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥
size_t my_strlen PARAMS ((const char *));
¤³¤Î¥Þ¥¯¥í¤Ï¡¤__PROTOTYPES
¤âÄêµÁ¤·¤Þ¤¹¡¥¤³¤ì¤Ï¡¤¥æ¡¼¥¶¤Î̾Á°¶õ´Ö
¤ò¿¯³²¤¹¤ë¥Þ¥¯¥í¤¬»ÈÍÑÉÔ²Äǽ¤Ê¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÍøÊØÀ¤¿¤á¤Ç¤¹¡¥
»ÈÍѤ·¤Æ¤¤¤ëGNU C¥³¥ó¥Ñ¥¤¥é¤Èioctl
¤¬¡¤
‘-traditional’̵¤·¤Ç¤ÏÀµ³Î¤Ëưºî¤·¤Ê¤¤¾ì¹ç¡¤½ÐÎÏÊÑ¿ôCC
¤Ë
‘-traditional’¤ò²Ã¤¨¤Þ¤¹¡¥¤½¤ì¤ÏÄ̾½¤Àµ¤µ¤ì¤¿¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬¸Å
¤¤¥·¥¹¥Æ¥à¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤¤ËȯÀ¸¤·¤Þ¤¹¡¥GNU C¥³
¥ó¥Ñ¥¤¥é¤ÎºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¤¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ë¡¤¼«Æ°Åª¤Ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò
½¤Àµ¤¹¤ë¤Î¤Ç¡¤¤³¤ì¤Ï¤Û¤È¤ó¤ÉÌäÂê¤Ë¤Ê¤ê¤Þ¤»¤ó¡¥
Next: C++ Compiler, Previous: Generic Compiler Characteristics, Up: Compilers and Preprocessors [Contents][Index]