簡體   English   中英

如何在 c 中使用帶參數的 function 指針?

[英]How can you use a function pointer with argument in c?

如何使用這個 function 指針聲明?

int (* get_function(char c)) (int, int);

我有三個函數int function_a(int a, int b)int function_b(int a, int b)int function_c(int a, int b) 我想使用上面的 function 指針根據c有條件地調用我的函數之一。

這是一個例子:

#include <stdio.h>

int function_a(int a, int b)
{
    printf("Inside function_a: %d %d\n", a, b);
    return a+b;
}

int function_b(int a, int b)
{
    printf("Inside function_b: %d %d\n", a, b);
    return a+b;
}

int function_c(int a, int b)
{
    printf("Inside function_c: %d %d\n", a, b);
    return a+b;
}

int function_whatever(int a, int b)
{
    printf("Inside function_whatever: %d %d\n", a, b);
    return a+b;
}


int (* get_function(char c)) (int, int)
{
    switch(c)
    {
        case 'A':
            return function_a;
        case 'B':
            return function_b;
        case 'C':
            return function_c;
    }
    return function_whatever;
}

int main(void) {
    get_function('B')(3, 5);
    return 0;
}

get_function('B')返回一個指向function_bget_function('B')(3, 5); 也稱為 function。

https://ideone.com/0kUp47

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM