C¸À¸ì´Ø·¸·Ç¼¨ÈÄ

²áµî¥í¥°

No.£µ£¹£°¡¥int func(int (*fp)(int))¡¡¤È¡¡int func(int fp(int))

[Ìá¤ë]¡¡[¥Û¡¼¥à¥Ú¡¼¥¸]
No.5585

´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿
Åê¹Æ¼Ô---¥·¥¹¥³(2003/03/14 23:17:43)


¤³¤ó¤Ë¤Á¤ï¡£¥·¥¹¥³¤Ç¤¹¡£

¸½ºß¡¢´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÊÙ¶¯¤ò¤·¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢
¤Ê¤¼­¡¤¬­¢¤ÎÍѤ˽ñ¤±¤ë¤Î¤«¤¬¤ï¤«¤ê¤Þ¤»¤ó¡£

¤É¤Ê¤¿¤«¡¢¤ï¤«¤ê¤ä¤¹¤¯¶µ¤¨¤Æ¤¤¤¿¤À¤±¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡©

­¡======
int func(int (*fp)(int))
{
        return((*fp)(555));
}

­¢======
int func(int fp(int))
{
        reutnr(fp(555));
}


¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£

No.5588

Re:´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿
Åê¹Æ¼Ô---aki(2003/03/15 17:05:57)


²¾°ú¿ôÀë¸À¤Ë¤ª¤¤¤Æ¤Ï¡¢´Ø¿ô¤ÎÀë¸À¤Ï´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÀë¸À¤ËÄ´À°¤µ¤ì
¤Þ¤¹¡£¤³¤ì¤Ï¡¢Æ±¤¸¤¯²¾°ú¿ôÀë¸À¤Ç¡¢ÇÛÎó¤ÎÀë¸À¤¬¥Ý¥¤¥ó¥¿¤ÎÀë¸À¤ËÄ´À°
¤µ¤ì¤ë¤Î¤ÈƱ¤¸¤è¤¦¤ÊÍýͳ¤Ë¤è¤ë¤â¤Î¤Ç¤¹¡£¤Þ¤ºÇÛÎó¤Î¾ì¹ç¤Ë¤Ä¤¤¤ÆÀâÌÀ
¤·¤Þ¤¹¡£²¼¤Î´Ø¿ô g ¤Î²¾°ú¿ôÀë¸À char x[] ¤Ï char *x ¤ËÄ´À°¤µ¤ì¤Þ¤¹¡£

void g(char x[])	/* (A) ÇÛÎó¤ÎÀë¸À¤ò¥Ý¥¤¥ó¥¿¤ÎÀë¸À¤ËÄ´À° */
{
    x[0] = 1;
}

void f(void)
{
    char x[10];
    g(x);         /* (B) ÇÛÎó̾ x ¤Ï¥Ý¥¤¥ó¥¿¤ËÊÑ´¹¤µ¤ì¤ë */
}

(A)¤ÎÄ´À°¡¢(B)¤ÎÊÑ´¹¤Ï¡¢ÇÛÎó¤Î»²¾ÈÅϤ·¤ò¼Â¸½¤¹¤ë¤«¤é¤¯¤ê¤òÄ󶡤¹¤ë¤â
¤Î¤À¤È¹Í¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¼ÂºÝ¤Ë¤Ï´Ø¿ô¤Ë¤Ï¥Ý¥¤¥ó¥¿¤¬ÅϤµ¤ì¤Æ¤¤¤ë¤Î
¤Ç¤¹¤¬¡¢¸«¤«¤±¤Ç¤Ï¡¢ÇÛÎó¤¬ÅϤµ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¸«¤¨¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ê¡Ö¤ß
¤»¤«¤±¡×¤ò·ù¤¦¤Ê¤é¡¢²¾°ú¿ôÀë¸À¤ÇÁÇľ¤Ë¥Ý¥¤¥ó¥¿¤òÀë¸À¤Ç¤­¤Þ¤¹¡£

´Ø¿ô¤Î¾ì¹ç¤âƱÍͤǤ¹¡£²¼¤Î´Ø¿ô g ¤Î²¾°ú¿ôÀë¸À void x(void) ¤Ï 
void (*x)(void) ¤ËÄ´À°¤µ¤ì¤Þ¤¹¡£

void g(void x(void)) /* (A') ´Ø¿ô¤ÎÀë¸À¤ò´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÀë¸À¤ËÄ´À° */
{
    x();             /* ¤â¤Á¤í¤ó (*x)() ¤Ç¤â¤è¤¤ */
}

void f(void)
{
    void func(void);
    g(func);         /* (B') ´Ø¿ô»Ø¼¨»Ò func ¤Ï¥Ý¥¤¥ó¥¿¤ËÊÑ´¹¤µ¤ì¤ë */
}

¼Â°ú¿ô¤ÎÇÛÎó̾¤¬¥Ý¥¤¥ó¥¿¤ËÊÑ´¹¤µ¤ì¤ë¤Î¤ÈƱ¤¸¤è¤¦¤Ë¡¢¼Â°ú¿ô¤Î´Ø¿ô»Ø¼¨
»Ò(Î㤨¤Ð´Ø¿ô̾)¤Ï´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ËÊÑ´¹¤µ¤ì¤Æ¤«¤é´Ø¿ô¤ËÅϤµ¤ì¤Þ¤¹¡£
¼õ¤±¼è¤ê¦¤Ç¤Ï²¾°ú¿ô¤Î´Ø¿ôÀë¸À¤ò¥Ý¥¤¥ó¥¿Àë¸À¤ËÄ´À°¤·¤Æ¤³¤Î¥Ý¥¤¥ó¥¿¤ò
¼õ¤±¼è¤ê¤Þ¤¹¡£(A')(B')¤¬¥»¥Ã¥È¤Ë¤Ê¤Ã¤ÆÆ¯¤­¡¢´Ø¿ô¤Ë´Ø¿ô¤òÅϤ·¤Æ¤¤¤ë¤«
¤Î¤è¤¦¤Ê¡Ö¤ß¤»¤«¤±¡×¤òÄ󶡤·¤Þ¤¹¡£ÇÛÎó¤Î¾ì¹ç¤ÈƱÍͤˡ¢¤³¤Î¤è¤¦¤Ê¡Ö¤ß
¤»¤«¤±¡×¤ò·ù¤¦¤Ê¤é¡¢¤ä¤Ï¤ê²¾°ú¿ôÀë¸À¤ÇÁÇľ¤Ë¥Ý¥¤¥ó¥¿¤òÀë¸À¤Ç¤­¤Þ¤¹¡£


No.5590

Re:´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿
Åê¹Æ¼Ô---¥·¥¹¥³(2003/03/16 20:52:54)


aki¤µ¤ó¡£¤³¤ó¤Ð¤ó¤Ï¡£
¤´ÊÖ¿®¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£

¤Ê¤ë¤Û¤É¡¢ÇÛÎó¤Î»þ¤ÈƱ¤¸¤è¤¦¤Ë
¡Ö¤ß¤»¤«¤±¡×¤Ê¤Î¤Ç¤¹¤Í¡£

°Â¿´¤·¤Þ¤·¤¿¡£¥Ý¥¤¥ó¥¿¤Ç¤Ï¡¢²¿ÅÙ¤â
ºÃÀÞ¤·¤Æ¤¤¤ë¤¿¤á¡¢ËÜÅö¤Ë½õ¤«¤ê¤Þ¤¹¡£