Next: , Previous: Generic Compiler Characteristics, Up: Compilers and Preprocessors   [Contents][Index]


5.10.3 C¥³¥ó¥Ñ¥¤¥é¤ÎÆÃħ

°Ê²¼¤Î¥Þ¥¯¥í¤Ï¡¤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»Ø¼¨¸ì¤ÎÀ¸À®¤òÄä»ß¤·¤¿Íýͳ¤Ç¤¹¡¥

Macro: AC_PROG_CC ([compiler-search-list])

»ÈÍѤ¹¤ë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¤ËÀßÄꤷ¤Þ¤¹¡¥

Macro: AC_PROG_CC_C_O

C¥³¥ó¥Ñ¥¤¥é¤¬‘-c’¤È‘-o’¥ª¥×¥·¥ç¥ó¤òƱ»þ¤Ë¼õ¤±Æþ¤ì¤Ê¤¤¾ì¹ç¡¤ NO_MINUS_C_MINUS_O¤òÄêµÁ¤·¤Þ¤¹¡¥¤³¤Î¥Þ¥¯¥í¤Ï¡¤AC_PROG_CC ¤Ç¸«¤Ä¤«¤Ã¤¿¥³¥ó¥Ñ¥¤¥é¤È¡¤¥Ñ¥¹¤ÎºÇ½é¤Îcc¤¬¤½¤ì¤È°Û¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç ¤Ï¤½¤ÎξÊý¤ò¡¤¼ÂºÝ¤Ë¥Æ¥¹¥È¤·¤Þ¤¹¡¥°ì¤Ä¤Ç¤â¼ºÇÔ¤·¤¿¾ì¹ç¡¤¥Æ¥¹¥È¤Ï¼ºÇÔ¤·¤Þ ¤¹¡¥¤³¤Î¥Þ¥¯¥í¤Ï¡¤GNU Make¤¬¥Ç¥Õ¥©¥ë¥È¤Î¥³¥ó¥Ñ¥¤¥ë¥ë¡¼¥ë¤òÁªÂò ¤¹¤ë¤è¤¦¤ËºîÀ®¤µ¤ì¤Þ¤·¤¿¡¥

Macro: AC_PROG_CPP

½ÐÎÏÊÑ¿ôCPP¤ò¡¤C¥×¥ê¥×¥í¥»¥Ã¥µ¤ò¼Â¹Ô¤¹¤ë¥³¥Þ¥ó¥É¤ËÀßÄê¤Þ¤¹¡¥ ‘$CC -E’¤¬Æ°ºî¤·¤Ê¤¤¾ì¹ç¡¤/lib/cpp¤ò»ÈÍѤ·¤Þ¤¹¡¥³ÈÄ¥»Ò¤¬ .c¤Î¥Õ¥¡¥¤¥ë¤ÇCPP¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ï°Ü¿¢À­¤Î¤¿¤á¤À¤±¤Ç¤¹¡¥

¥×¥í¥»¥Ã¥µ¤Ë¤è¤Ã¤Æ¤Ï¡¤Â­¤ê¤Ê¤¤¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò¥¨¥é¡¼¥¹¥Æ¡¼¥¿¥¹¤Ç¼¨ ¤µ¤Ê¤¤¤â¤Î¤â¤¢¤ê¤Þ¤¹¡¥¤½¤Î¤è¤¦¤Ê¥×¥í¥»¥Ã¥µ¤ËÂФ¹¤ëÆâÉôÊÑ¿ô¤Ï¡¤¥×¥ê¥×¥í¥»¥Ã ¥µ¤«¤é¤Îɸ½à¥¨¥é¡¼¤òÄ´ºº¤¹¤ë¤¿¤á¤Î¾¤Î¥Þ¥¯¥í¤òÀßÄꤷ¡¤·Ù¹ð¤¬Êó¹ð¤µ¤ì¤¿¾ì ¹ç¤Ï¥Æ¥¹¥È¤Ë¼ºÇÔ¤·¤¿¤ÈȽÃǤ·¤Þ¤¹¡¥¤½¤ì¤Ë¤â¤«¤«¤ï¤é¤º¡¤¤Û¤È¤ó¤É¤Î¥×¥ê¥×¥í ¥»¥Ã¥µ¤ËÂФ·¤Æ¡¤AC_PROG_CPP_WERROR¤â»ØÄꤷ¤Ê¤¤¸Â¤ê¡¤·Ù¹ð¤Ç¥¤¥ó¥¯ ¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î¥Æ¥¹¥È¤Ï¼ºÇÔ¤·¤Þ¤¹¡¥

Macro: AC_PROG_CPP_WERROR

¤³¤ì¤ÏAC_PROG_CPP¤Î¤è¤¦¤Ëưºî¤·¤Þ¤¹¤¬¡¤¥×¥ê¥×¥í¥»¥Ã¥µ¤«¤é¤Î·Ù¹ð¤ò¡¤ ¥×¥ê¥×¥í¥»¥Ã¥µ¤¬À®¸ù¤·¤¿¤³¤È¤ò¼¨¤¹¥¹¥Æ¡¼¥¿¥¹¤Ç½ªÎ»¤·¤¿¾ì¹ç¤Ç¤â¡¤¥¨¥é¡¼¤¬ ¤¢¤Ã¤¿¤È¤·¤Æ½èÍý¤·¤Þ¤¹¡¥¤³¤ì¤Ï¡¤¿ä¾©¤µ¤ì¤Ê¤¤Ãí°Õ¤Î¤è¤¦¤Ê¡¤¶¯À©Åª¤Ê·Ù¹ð¤ò À¸À®¤¹¤ë¥Ø¥Ã¥À¤òÈò¤±¤ë¤È¤­¤ËÌò¤ËΩ¤Á¤Þ¤¹¡¥

°Ê²¼¤Î¥Þ¥¯¥í¤Ï¡¤C¥³¥ó¥Ñ¥¤¥é¤ä¥Þ¥·¥ó¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ÎÆÃħ¤òÄ´ºº¤·¤Þ¤¹¡¥¤³ ¤³¤Ç¥ê¥¹¥È¥¢¥Ã¥×¤µ¤ì¤Ê¤¤ÆÃħ¤òÄ´ºº¤¹¤ë¤¿¤á¤Ë¡¤AC_COMPILE_IFELSE (see Running the Compiler)¤äAC_RUN_IFELSE (see Run Time) ¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥

Macro: AC_C_BACKSLASH_A

C¥³¥ó¥Ñ¥¤¥é¤¬‘\a’¤òÍý²ò¤¹¤ë¾ì¹ç¡¤‘HAVE_C_BACKSLASH_A’¤ò1¤ËÄêµÁ ¤·¤Þ¤¹¡¥

Macro: AC_C_BIGENDIAN ([action-if-true], [action-if-false], [action-if-unknown])

(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¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¡¤¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤òÃæÃǤ·¡¤¥¤ ¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤ë¿Í¤Ë¡¤¤³¤Î¥Æ¥¹¥È¤ò¥Ð¥¤¥Ñ¥¹¤µ¤»¤ë¤¿¤á¤ËÊÑ¿ô¤òÁ°¤â¤Ã¤ÆÄê µÁ¤¹¤ë¤è¤¦ÅÁ¤¨¤Þ¤¹¡¥

Macro: AC_C_CONST

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¥³¥ó¥Ñ¥¤¥é¤òÆþ¼ê¤¹¤Ù¤­¤Ç¤¹¡¥

Macro: AC_C_RESTRICT

C¥³¥ó¥Ñ¥¤¥é¤¬restrict¥­¡¼¥ï¡¼¥É¤òǧ¼±¤¹¤ë¾ì¹ç¤Ï²¿¤â¤·¤Þ¤»¤ó¡¥ (__restrict¡¤__restrict__¡¤¤Þ¤¿¤Ï_Restrict)¤È¤¤¤¦¡¤ ¤«¤ï¤Ã¤¿¤Ä¤Å¤ê¤À¤±¤òǧ¼±¤¹¤ë¾ì¹ç¡¤restrict¤ò¤½¤ì¤ËÄêµÁ¤·¤Þ¤¹¡¥¤½ ¤ì°Ê³°¤Ç¤Ï¡¤restrict¤ò¶õ¤ÇÄêµÁ¤·¤Þ¤¹¡¥¤³¤Î¤¿¤á¡¤¥×¥í¥°¥é¥à¤Ç¤Ï restrict¤ò¤¹¤Ù¤Æ¤ÎC¥³¥ó¥Ñ¥¤¥é¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ë¡¤Ã±½ã¤Ë »ÈÍѤ·¤Æ¤«¤Þ¤¤¤Þ¤»¤ó¡¥¤½¤¦¤·¤Ê¤¤¿Í¤Ï¡¤Makefile¤ä¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç ¥ó¥Ø¥Ã¥À¤Ç´èÄ¥¤Ã¤ÆÄêµÁ¤·¤Æ²¼¤µ¤¤¡¥

C++¤Ç¤Îrestrict¥­¡¼¥ï¡¼¥É¥µ¥Ý¡¼¥È¤ÏÍ׵ᤵ¤ì¤Æ¤¤¤Þ¤»¤ó¤¬¡¤¤¤¤¯¤Ä¤« ¤ÎC++¥³¥ó¥Ñ¥¤¥é¤Ï¤½¤Î¥­¡¼¥ï¡¼¥É¤ò¼õ¤±Æþ¤ì¤Þ¤¹¡¥¤³¤Î¥Þ¥¯¥í¤Ï¡¤¤½¤³¤Ç¤âư ºî¤·¤Þ¤¹¡¥

Macro: AC_C_VOLATILE

C¥³¥ó¥Ñ¥¤¥é¤¬¥­¡¼¥ï¡¼¥Évolatile¤òÍý²ò¤·¤Ê¤¤¾ì¹ç¡¤volatile ¤ò¶õ¤ÇÄêµÁ¤·¤Þ¤¹¡¥¥×¥í¥°¥é¥à¤Ç¤Ïvolatile¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥³¥ó¥Ñ ¥¤¥é¤Î¤è¤¦¤Ëñ½ã¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥¥µ¥Ý¡¼¥È¤·¤Ê¤¤¤â¤Î¤ËÂФ·¤Æ¤Ï¡¤ Makefile¤ä¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥Ø¥Ã¥À¤Ç¡¤¤½¤ì¤ò¶õ¤È¤·¤ÆÄêµÁ¤µ¤ì¤Þ ¤¹¡¥

¥×¥í¥°¥é¥à¤ÎÀµÅöÀ­¤¬volatile¤Î°ÕÌ£¤Ë°Í¸¤·¤Æ¤¤¤ë¾ì¹ç¡¤Ã±½ã¤Ë¶õ¤Ç ÄêµÁ¤¹¤ë¤È¤¢¤ë°ÕÌ£¤Ç¤Ï¥³¡¼¥É¤¬²õ¤ì¤Þ¤¹¡¥¤·¤«¤·¡¤volatile¤ò¥µ¥Ý¡¼ ¥È¤·¤Æ¤¤¤Ê¤¤¥³¥ó¥Ñ¥¤¥é¤Ç¤Ï¡¤¼«Ê¬¤Ç²¿¤È¤«¤·¤Æ¤¯¤À¤µ¤¤¡¥¾¯¤Ê¤¯¤È¤â¥×¥í¥°¥é ¥à¤Ï¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤¹¤¬¡¤Â¿Ê¬ÂÌÌܤǤ·¤ç¤¦¡¥

°ìÈÌŪ¤Ë¡¤volatile¥­¡¼¥ï¡¼¥É¤ÏANSI C¤Îµ¡Ç½¤Ê¤Î¤Ç¡¤ __STDC__¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤À¤±¡¤volatile¤¬ÍøÍѲÄǽ¤À¤È´ü ÂÔ¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡¥¤·¤«¤·¡¤Ultrix 4.3¤Î¥Í¥¤¥Æ¥£¥Ö¥³¥ó¥Ñ¥¤¥é¤Ï volatile¤ò¥µ¥Ý¡¼¥È¤È¤·¤Æ¤¤¤Þ¤¹¤¬¡¤__STDC__¤òÄêµÁ¤·¤Þ¤»¤ó¡¥

Macro: AC_C_INLINE

C¥³¥ó¥Ñ¥¤¥é¤¬¥­¡¼¥ï¡¼¥Éinline¤ò¥µ¥Ý¡¼¥È¤¹¤ë¾ì¹ç¡¤²¿¤â¤·¤Þ¤»¤ó¡¥¤½ ¤ì°Ê³°¤Ç¤Ï¡¤¼õ¤±Æþ¤ì¤é¤ì¤ë¤â¤Î¤Ë¤è¤Ã¤Æ¡¤inline¤ò__inline__ ¤ä__inline¤ËÄêµÁ¤·¡¤¤½¤ì°Ê³°¤Ç¤Ïinline ¤ò¶õ¤ÇÄêµÁ¤·¤Þ¤¹¡¥

Macro: AC_C_CHAR_UNSIGNED

C¤Î·¿char¤¬unsigned¤Î¾ì¹ç¡¤C¥³¥ó¥Ñ¥¤¥é¤¬Á°¤â¤Ã¤ÆÄêµÁ¤·¤Æ¤¤¤Ê¤¤¸Â ¤ê¡¤__CHAR_UNSIGNED__¤òÄêµÁ¤·¤Þ¤¹¡¥

Macro: AC_C_LONG_DOUBLE

C¥³¥ó¥Ñ¥¤¥é¤¬¡¤double¤Î·¿°Ê¾å¤ÎÈÏ°Ï¤ÇÆ°ºî¤¹¤ëlong double ¤Î·¿¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¡¤HAVE_LONG_DOUBLE¤òÄêµÁ¤·¤Þ¤¹¡¥

Macro: AC_C_STRINGIZE

C¥×¥ê¥×¥í¥»¥Ã¥µ¤¬Ê¸»úÎóºîÀ®¥ª¥Ú¥ì¡¼¥¿¤ò¥µ¥Ý¡¼¥È¤¹¤ë¾ì¹ç¡¤ HAVE_STRINGIZE¤òÄêµÁ¤·¤Þ¤¹¡¥Ê¸»úÎóºîÀ®¥ª¥Ú¥ì¡¼¥¿¤Ï‘#’¤È¡¤°Ê ²¼¤Î¤è¤¦¤Ê¥Þ¥¯¥í¤Ç¸«¤Ä¤«¤ê¤Þ¤¹¡¥

#define x(y) #y
Macro: AC_C_PROTOTYPES

´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×¤ò¥³¥ó¥Ñ¥¤¥é¤¬Íý²ò¤¹¤ë¾ì¹ç(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¤âÄêµÁ¤·¤Þ¤¹¡¥¤³¤ì¤Ï¡¤¥æ¡¼¥¶¤Î̾Á°¶õ´Ö ¤ò¿¯³²¤¹¤ë¥Þ¥¯¥í¤¬»ÈÍÑÉÔ²Äǽ¤Ê¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÍøÊØÀ­¤¿¤á¤Ç¤¹¡¥

Macro: AC_PROG_GCC_TRADITIONAL

»ÈÍѤ·¤Æ¤¤¤ëGNU C¥³¥ó¥Ñ¥¤¥é¤Èioctl¤¬¡¤ ‘-traditional’̵¤·¤Ç¤ÏÀµ³Î¤Ëưºî¤·¤Ê¤¤¾ì¹ç¡¤½ÐÎÏÊÑ¿ôCC¤Ë ‘-traditional’¤ò²Ã¤¨¤Þ¤¹¡¥¤½¤ì¤ÏÄ̾½¤Àµ¤µ¤ì¤¿¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬¸Å ¤¤¥·¥¹¥Æ¥à¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤ËȯÀ¸¤·¤Þ¤¹¡¥GNU C¥³ ¥ó¥Ñ¥¤¥é¤ÎºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¤¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ë¡¤¼«Æ°Åª¤Ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò ½¤Àµ¤¹¤ë¤Î¤Ç¡¤¤³¤ì¤Ï¤Û¤È¤ó¤ÉÌäÂê¤Ë¤Ê¤ê¤Þ¤»¤ó¡¥


Next: , Previous: Generic Compiler Characteristics, Up: Compilers and Preprocessors   [Contents][Index]