錦平
Lv 5
錦平 發問時間: 電腦與網際網路程式設計 · 1 0 年前

C語言問題 typedef & void pointer .

我有兩個地方不懂,幫幫忙..1.typedef unsigned int (*send)(int,int); 2.void *p;  指標宣告為void 是啥意思,變數也可宣告為void嗎?

2 個解答

評分
  • 1 0 年前
    最佳解答

    1. send 是個 函數指標 指向一個函數,

    呼叫該函數時要傳入兩個整數參數,

    函數執行後傳回值是 unsigned int 型態

    2. void *p 宣告了 p 為萬用指標,可指向任何型態;

    但變數不可宣告為 void,因為 C 不能處理未明確宣告型態的變數。

  • none
    Lv 4
    1 0 年前

    send 是個函數指標的型別(因為你用了 typedef),

    傳回值是 unsigned int

    參數有兩個 int

    ex:

    unsigned int FuncAdd(int a, int b)

    {

    unsigned int c = (unsigned int)a + (unsigned int)b;

    }

    unsigned int FuncMinus(int a, int b)

    {

    unsigned int c = (unsigned int)a + (unsigned int)b;

    }

    void main()

    {

    send aFuncPtr; // 有個變數 aFuncPtr, 他的 type 是 send(也就是函數指標)

    aFuncPtr = FuncAdd; // 該變數指到一個 function

    int a=10, b=5;

    aFuncPtr(a, b); // 等同 FuncAdd(a, b);

    aFuncPtr = FuncMinus;

    aFuncPtr(a, b); // 等同 FuncMinus(a, b);

    }

    不知道這樣可以瞭解嗎?

還有問題?馬上發問,尋求解答。