関数のポインタ -- 引数渡し

戻る
::::::::::::::
Function-test.c
::::::::::::::
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int add
    ( int x, int y ) {
    return x + y;
}

int
subtract ( int x, int y ) {
    return x - y;
}

// 関数ポインタの引数渡し
void
display ( int* func ( int x, int y ), int a, int b ) {
    printf ( "result = %d\n", ( *func ) ( a, b ) );
}

int
main ( void ) {
    int x;
    int ( *func ) ( int, int );

    func = add;
    printf ( "%d\n", ( *func ) ( 2, 3 ) );

    func = subtract;
    printf ( "%d\n", ( *func ) ( 2, 3 ) );

    display ( add, 10, 3 );
    display ( subtract, 10, 3 );
}

■実行結果

::::::::::::::
$ ./Function-test.exe
5
-1
result = 13
result = 7

戻る

inserted by FC2 system