modernc.org/ccgo/v3@v3.16.14/lib/testdata/bug/fp.c (about)

     1  int f(int n) {
     2  	return 2*n;
     3  }
     4  
     5  int (*fp1)(int) = f;
     6  int (*fp2)(int) = &f;
     7  
     8  int main() {
     9  	__builtin_printf("%i\n", fp1(10));
    10  	__builtin_printf("%i\n", (*fp1)(20));
    11  	__builtin_printf("%i\n", (**fp1)(30));
    12  	__builtin_printf("%i\n", fp2(40));
    13  	__builtin_printf("%i\n", (*fp2)(50));
    14  	__builtin_printf("%i\n", (**fp2)(60));
    15  
    16  	int (*p1)(int) = f;
    17  	int (*p2)(int) = &f;
    18  
    19  	__builtin_printf("%i\n", p1(11));
    20  	__builtin_printf("%i\n", (*p1)(21));
    21  	__builtin_printf("%i\n", (**p1)(31));
    22  	__builtin_printf("%i\n", p2(41));
    23  	__builtin_printf("%i\n", (*p2)(51));
    24  	__builtin_printf("%i\n", (**p2)(61));
    25  
    26  	int (*q1)(int) = f;
    27  	int (*q2)(int) = &f;
    28  	void *p = &q1;
    29  	void *q = &q2;
    30  
    31  	__builtin_printf("%i\n", q1(12));
    32  	__builtin_printf("%i\n", (*q1)(22));
    33  	__builtin_printf("%i\n", (**q1)(32));
    34  	__builtin_printf("%i\n", q2(42));
    35  	__builtin_printf("%i\n", (*q2)(52));
    36  	__builtin_printf("%i\n", (**q2)(62));
    37  }