我不斷收到以下錯誤,當我下摹編譯外部可見++(這是一個非常漫長的代碼段)如何使結構類型定義聯合C++
error: invalid use of incomplete type 'const struct cmp_bk(const void*, const void*)::bk'
error: forward declaration of 'const struct cmp_bk(const void*, const void*)::bk'
的代碼如下:
static union {
struct tt { /* Transposition table entry */
unsigned short hash; /* - Identifies position */
short move; /* - Best recorded move */
short score; /* - Score */
char flag; /* - How to interpret score */
char depth; /* - Remaining search depth */
} tt[CORE];
struct bk { /* Opening book entry */
unsigned long hash; /* - Identifies position */
short move; /* - Move for this position */
unsigned short count; /* - Frequency */
} bk[CORE];
} core;
後來在節目中,我們定義新結構的a,b
static int cmp_bk(const void *ap, const void *bp)
{
const struct bk *a = (bk*) ap;
const struct bk *b = (bk*) bp;
if (a->hash < b->hash) return -1;
if (a->hash > b->hash) return 1;
return (int)a->move - (int)b->move;
}
我們很可能無法正常訪問的結構BK工會之外
對不起,這不是C++。這裏我們不使用'void *'。或C型演員。或工會。或者比較不是操作員的功能。 –
@CatPlusPlus - 如果你能和我的老闆見面,我會很高興...... – Nate
有沒有什麼理由不能在union之外定義/ typedef bk結構? – IronMensan