尋找GMPlib的源代碼(用於多精度計算的Gnu庫)我發現了這種代碼來構建它的mp * _t結構。而且我已經在我已經完成的各種其他作品中複製了它,但我並不完全理解它。不理解這個結構typedefs
typedef struct
{
int _mp_alloc; /* Number of *limbs* allocated and pointed
to by the _mp_d field. */
int _mp_size; /* abs(_mp_size) is the number of limbs the
last field points to. If _mp_size is
negative this is a negative number. */
mp_limb_t *_mp_d; /* Pointer to the limbs. */
} __mpz_struct;
我明白,這定義了一個結構的「形」與兩個整數和一個mp_limb_t
和它的typedef到__mpz_struct
然後就是這條線:
typedef __mpz_struct mpz_t[1];
過了一段時間,這另一個:
typedef __mpz_struct *mpz_ptr;
我明白那第二個是typedefining __mpz_struct *
到mpz_ptr
(這是在函數原型使用)
但我不明白,第一個做了什麼,以及爲什麼它的作品,所以我可以宣佈mpz_t。任何人都可以解釋爲什麼它有效
謝謝!
多麼美妙的想法,typedef'_struct'作爲類型名稱中的後綴,因此您不必將'struct'寫爲前綴。哎呀。 – unwind