Saya menggunakan chip infini**.

Dalam Kode Dasar mereka, setiap kode [XXX_ioctl].c Ini memiliki kode di bawah di bagian atas.
(XXX berarti driver yang ingin saya gunakan.)

typedef void (*PFUNCTION)(void); 

#define FUNCTION_COUNT 5

struct IoctlInterface {
    uint8_t count;
    PFUNCTION functionArray[FUNCTION_COUNT]; //function pointer array
} __STATIC const XxxInterface = {
    FUNCTION_COUNT,
    {
        (PFUNCTION) IFX_XXX_Open,
        (PFUNCTION) IFX_XXX_Close,
        (PFUNCTION) IFX_XXX_Ioctl,
        (PFUNCTION) IFX_XXX_CancleIO,
        (PFUNCTION) IFX_XXX_DriverInit,
    }
};

Saya tahu bahwa struct IoctlInterface memiliki anggota array[5], yang tipe pengembaliannya adalah penunjuk fungsi. Tapi, apa artinya the following?

__STATIC const XxxInterface = {
FUNCTION_COUNT,
{
    (PFUNCTION) IFX_XXX_Open,
    (PFUNCTION) IFX_XXX_Close,
    (PFUNCTION) IFX_XXX_Ioctl,
    (PFUNCTION) IFX_XXX_CancleIO,
    (PFUNCTION) IFX_XXX_DriverInit,
}
};

Terima kasih sebelumnya.

Jika posting ini melanggar rahasia teknis chip, saya akan segera menghapusnya.

-1
Donghun Park 5 Maret 2020, 11:29

1 menjawab

Jawaban Terbaik

Saya pikir Anda mungkin perlu membaca sedikit lebih banyak tentang C. Namun, di bagian ini Anda hanya mendeklarasikan (mungkin) variabel statis global (mungkin) yang disebut XxxInterface bertipe IoctlInterface dan mengisinya anggota dari struktur tersebut.

__STATIC const XxxInterface = {
FUNCTION_COUNT,
{
    (PFUNCTION) IFX_XXX_Open,
    (PFUNCTION) IFX_XXX_Close,
    (PFUNCTION) IFX_XXX_Ioctl,
    (PFUNCTION) IFX_XXX_CancleIO,
    (PFUNCTION) IFX_XXX_DriverInit,
}
};
1
Richard Nixon 5 Maret 2020, 08:52