亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1402 | 回復: 7
打印 上一主題 下一主題

取左值問題,在Tru64上沒問題,在Solaris8/sparc編譯通不過(急) [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2005-02-28 16:21 |只看該作者 |倒序瀏覽
有如下代碼:
相關(guān)數(shù)據(jù)類型的定義:

typedef struct dll_ptr
{
  struct dll_ptr  *fw_ptr;
  struct dll_ptr  *bw_ptr;
} DLL_D_HDR_PTR;


    struct testdll{
DLL_D_HDR_PTR  dll;
int            num;
};

struct testdll *pdll;
struct testdll *tmpdll;
       DLL_RemCurrByPtr(&pdll->;dll,(DLL_D_HDR_PTR *)tmpdll,sts);
     
在solaris8/sparc上 編譯時出現(xiàn)如下錯誤:
  invaliid lvalue in unary “&”

不知道為什么會出現(xiàn)這個錯誤,該如何改正才行?
注:這段代碼在Tru64上是沒有問題的。
先謝謝各位大蝦了

論壇徽章:
0
2 [報告]
發(fā)表于 2005-02-28 16:25 |只看該作者

取左值問題,在Tru64上沒問題,在Solaris8/sparc編譯通不過(急)

補充一下:相關(guān)函數(shù)原型如下:
  #define  DLL_RemCurrByPtr(mhdr, mrem, status)        \
            status = DLL_RemHeadByPtr(((mhdr)->;bw_ptr), &mrem);
extern  MSG_ID_T   DLL_RemHeadByPtr (
                            DLL_D_HDR_PTR *hdr,      /*- list header       -*/
                            DLL_D_HDR_PTR **elem );  /*- element to remove -*/

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
3 [報告]
發(fā)表于 2005-02-28 18:45 |只看該作者

取左值問題,在Tru64上沒問題,在Solaris8/sparc編譯通不過(急)

你的編譯器認為mrem是一個無效的左值,
所以不能對它用&操作。
為什么我也不知道。

論壇徽章:
0
4 [報告]
發(fā)表于 2005-02-28 19:12 |只看該作者

取左值問題,在Tru64上沒問題,在Solaris8/sparc編譯通不過(急)

或許可以試一下(&pdll)->;dll

論壇徽章:
0
5 [報告]
發(fā)表于 2005-02-28 21:18 |只看該作者

取左值問題,在Tru64上沒問題,在Solaris8/sparc編譯通不過(急)

事實上,當我把對宏定義的引用換成如下語句:
DLL_RemHeadByPtr(((DLL_D_HDR_PTR *)&(pdll->;dll))->;bw_ptr,(DLL_D_HDR_PTR *)&tmpdll);
就OK了

到底是什么原因呢?
宏定義的問題?

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
6 [報告]
發(fā)表于 2005-03-01 09:12 |只看該作者

取左值問題,在Tru64上沒問題,在Solaris8/sparc編譯通不過(急)

(DLL_D_HDR_PTR *)tmpdll
是不是變成了一個臨時變量,
然后對它取地址無效了呢?

論壇徽章:
2
技術(shù)圖書徽章
日期:2013-09-04 15:21:51酉雞
日期:2013-11-01 21:20:20
7 [報告]
發(fā)表于 2005-03-01 10:07 |只看該作者

取左值問題,在Tru64上沒問題,在Solaris8/sparc編譯通不過(急)

[quote]原帖由 "aerofox"]或許可以試一下(&pdll)->;dll[/quote 發(fā)表:

暈,這成什么了?!

論壇徽章:
0
8 [報告]
發(fā)表于 2005-03-01 14:36 |只看該作者

取左值問題,在Tru64上沒問題,在Solaris8/sparc編譯通不過(急)

我發(fā)現(xiàn)問題是當引用宏定義的時候,在SUN 上(gcc編譯器),這種表達式:&(DLL_D_HDR_PTR*)tmpdll被認為是錯誤的,(在Tru64上可以,用的是cc編譯器), 而(DLL_D_HDR_PTR *)&tmpdll則認為是正確的。可為什么?編譯器?還是與具體操作系統(tǒng)有關(guān)?
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP