初學 C++
編譯器(vs2012)上有這樣一段代碼無法編譯:typedef void far * XMSDRIVER;
在 * 處提示錯誤 “應輸入;”
關於 far 的定義如下:
#ifndef FAR
#ifdef NEED_FAR_POINTERS
#define FAR far
#else
#define FAR
#endif
#endif
並沒有定義far啊?
你define的是FAR,那個define的意思是把FAR替換成far,但far本身沒有被定義。所以編譯器看到了typedef void far
,認為你給void起了個別名far,所以讓你在far後面,也就是*前面加一個分號。