Next: , Previous: Comments, Up: Writing C   [Contents]


5.3 C¤Î¹½À®¤Î¤­¤ì¤¤¤ÊÍøÍÑ

´Ø¿ô¤Ø¤ÎÁ´¤Æ¤Î°ú¿ô¤òÌÀ¼¨Åª¤ËÀë¸À¤·¤Æ¤¯¤À¤µ¤¤¡£¤½¤ì¤é¤¬Ã±¤Ëint¤À¤« ¤é¤È¤¤¤¦Íýͳ¤Ç¾Ê¤¤¤Æ¤¤¤±¤Ê¤¤¡£

³°Éô´Ø¿ô¤È¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î¸å¤í¤Ë¸½¤ì¤ë´Ø¿ô¤ÎÀë¸À¤Ï¡¢¥Õ¥¡¥¤¥ë¤ÎÀèÆ¬¤Î¶á¤¯ °ì²Õ½ê¤«¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ë½ñ¤¯¤Ù¤­¤À¡£´Ø¿ô¤ÎÃæ¤ËexternÀë¸À¤ò ÃÖ¤¤¤Æ¤Ï¤¤¤±¤Ê¤¤¡£

°ÊÁ°¡¢°ì¤Ä¤Î´Ø¿ôÆâ¤Ç·«¤êÊÖ¤··«¤êÊÖ¤·°Û¤Ê¤ëÃͤΤ¿¤á¤Ë(tem¤Î¤è¤¦¤Ê ̾Á°¤Ç)Ʊ¤¸¶É½êÊÑ¿ô¤ò»È¤¦¤Î¤¬ÉáÄ̤Τä¤êÊý¤À¤Ã¤¿¡£¤³¤¦¤¹¤ëÂå¤ï¤ê¤Ë¡¢Ê̤ΠÌÜŪËè¤ËÊ̤ζɽêÊÑ¿ô¤òÀë¸À¤·¡¢°ÕÌ£¤Î¤¢¤ë̾Á°¤òÉÕ¤±¤ëÊý¤¬¤è¤êÎɤ¤¡£¤³¤ì¤Ç ¥×¥í¥°¥é¥à¤¬¤è¤êÍý²ò¤·¤ä¤¹¤¯¤Ê¤ë¤À¤±¤Ç¤Ê¤¯¡¢Îɤ¤¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¤òÂ¥¿Ê ¤¹¤ë¤Î¤Ç¤¢¤ë¡£¤Þ¤¿¡¢¶É½êÊÑ¿ô¤ÎÀë¸À¤ò¤½¤ì¤¾¤ì¡¢¤½¤ì¤òÁ´¤Æ»ÈÍѤ¹¤ë°ìÈÖ¾®¤µ ¤¤Îΰè¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤¦¤¹¤ë¤È¡¢¥×¥í¥°¥é¥à¤¬¤µ¤é¤Ë¤­¤ì¤¤¤Ë¤Ê¤ë¤Î ¤À¡£

Âç°è¼±Ê̻Ҥò±£¤¹¶É½êÊÑ¿ô¤ä°ú¿ô¤ò»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£

Ê£¿ô¹Ô¤ËµÚ¤Ö°ì¤Ä¤ÎÀë¸À¤ÇÊ£¿ô¤ÎÊÑ¿ô¤òÀë¸À¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£Âå¤ï¤ê¤Ë¡¢¤½¤ì¤¾ ¤ì¹Ô¤Ç¿·¤·¤¯Àë¸À¤ò»Ï¤á¤Ê¤µ¤¤¡£Î㤨¤Ð¡¢¤³¤¦¤¹¤ëÂå¤ï¤ê¤Ë¡¢

int    foo,
       bar;

¤³¤¦½ñ¤¯¤«¡¢

int foo, bar;

¤¢¤ë¤¤¤Ï¡¢¤³¤¦¤¹¤ë¡£

int foo;
int bar;

(¤â¤·¤½¤ì¤é¤¬Âç°èÊÑ¿ô¤Ê¤é¡¢¤¤¤º¤ì¤Ë¤»¤è¤½¤ÎÁ°¤Ë¥³¥á¥ó¥È¤òÉÕ¤±¤ë¤Ù¤­¤À¡£)

¾¤Îifʸ¤ËÆþ¤ì»Ò¤Ë¤Ê¤ëif-elseʸ¤¬¤¢¤ë¤È¤­¡¢É¬¤º¤½¤Î if-else¤Î¼þ¤ê¤ËÂç³ç¸Ì¤òÉÕ¤±¤ë¡£½¾¤Ã¤Æ¡¢¼¡¤Î¤è¤¦¤Ë·è¤·¤Æ½ñ ¤¤¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£

if (foo)
  if (bar)
    win ();
  else
    lose ();

¾ï¤Ë¼¡¤Î¤è¤¦¤Ë¤¹¤ë¡£

if (foo)
  {
    if (bar)
      win ();
    else
      lose ();
  }

¤â¤·elseʸ¤ÎÃæ¤ËÆþ¤ì»Ò¤Ë¤Ê¤ëifʸ¤¬¤¢¤ì¤Ð¡¢¼¡¤Î¤è¤¦¤Ë¡¢ thenÉôʬ¤ò¤½¤ÎÁ°¤ÎthenÉôʬ¤Î¤è¤¦¤Ë»ú²¼¤²¤·¤Æ°ì¹Ô¤Ë else if¤ò½ñ¤¯¤«¡¢

if (foo)
  …
else if (bar)
  …

¤¢¤ë¤¤¤Ï¡¢¼¡¤Î¤è¤¦¤ËÂç³ç¸Ì¤ÎÃæ¤ËÆþ¤ì»Ò¤Îif¤ò½ñ¤¯¡£

if (foo)
  …
else
  {
    if (bar)
      …
  }

Ʊ¤¸Àë¸À¤Ç¡¢¹½Â¤ÂΤΥ¿¥°¤äÊÑ¿ô¡¢typedef¤ò°ì½ï¤ËÀë¸À¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£Âå¤ï ¤ê¤Ë¡¢¹½Â¤ÂΤΥ¿¥°¤òÊ̤ËÀë¸À¤·¤Æ¡¢¤½¤ì¤«¤éÊÑ¿ô¤ätypedef¤òÀë¸À¤¹¤ë¡£

if¾ò·ïʸÆâ¤ÇÂåÆþ¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Ê¤µ¤¤¡£Î㤨¤Ð¡¢¤³¤¦½ñ¤¤¤Æ¤Ï¤¤¤± ¤Ê¤¤¡£

if ((foo = (char *) malloc (sizeof *foo)) == 0)
  fatal ("virtual memory exhausted");

Âå¤ï¤ê¤Ë¡¢¤³¤¦½ñ¤¯¡£

foo = (char *) malloc (sizeof *foo);
if (foo == 0)
  fatal ("virtual memory exhausted");

lint¤ò¤ª¤È¤Ê¤·¤¯¤¹¤ë¤Î¤Ë¡¢¥×¥í¥°¥é¥à¤ò¸«¶ì¤·¤¯¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ void¤Ø¤Î¥­¥ã¥¹¥È¤òÆþ¤ì¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£¥­¥ã¥¹¥È¤Ê¤·¤Î¥¼¥í¤Ï¡¢²ÄÊÑ °ú¿ô¤Î´Ø¿ô¤ò¸Æ¤Ö¤È¤­¤ò½ü¤¯¤È¡¢¥Ì¥ë¡¦¥Ý¥¤¥ó¥¿Äê¿ô¤È¤·¤ÆÁ´¤¯·ë¹½¤Ç¤¢¤ë¡£