関数のポインタ渡し

戻る

#include <stdio.h> 
// $Id: function-pointer2.html,v 1.1 2009/06/22 16:12:11 kishi Exp kishi $

typedef struct mydata {
    int data;
    void ( *function ) ( struct mydata *this, int a );
}
MYDATA;

void functionA( MYDATA *this, int a ) {

    this->data = a;
}
void functionB( MYDATA *this, int a ) {

    this->data = a * a;
}

int main( void ) {

    MYDATA a = { 0, functionA }, b = { 0, functionB };

    a.function( &a, 3 );
    b.function( &b, 5 );

    printf( "%d\n", a.data );
    printf( "%d\n", b.data );

    return 0;
}


戻る

inserted by FC2 system