這個問題在這里已經有了答案: 為什么這些函式名稱在括號中?[重復] (3個答案) 昨天關門。
我什至不是c語言的初學者。
我看到了來自 cpython 源代碼的代碼:
typedef struct _formatdef {
char format;
Py_ssize_t size;
Py_ssize_t alignment;
PyObject* (*unpack)(_structmodulestate *, const char *,
const struct _formatdef *);
int (*pack)(_structmodulestate *, char *, PyObject *,
const struct _formatdef *);
} formatdef;
在第 5 行,我知道它PyObject*定義了一個指向 PyObject 型別變數的指標,但是這是什么(*unpack)意思?以下(_structmodulestate *)是什么意思?
uj5u.com熱心網友回復:
這是一個函式指標宣告。
這:
float x;
宣告一個float名為x.
這:
float *p;
宣告一個名為 的型別變數float*(指向 a 的指標float)p。
這:
int foo(float *p);
宣告一個名為 的函式foo,它接受 afloat*作為引數,并回傳一個int.
這:
PyObject* (*unpack)(_structmodulestate *, const char *, const struct _formatdef *);
宣告了一個名為 的函式指標unpack,它指向一個函式,該函式接受三個(各種型別的)指標作為引數,并回傳一個PyObject*.
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/418558.html
標籤:
下一篇:c-復制字串的最有效方法是什么?
