簡體   English   中英

左值作為一元'&'操作數

[英]lvalue required as unary ‘&’ operand

我有以下幾行代碼:

#define PORT 9987

char *ptr = (char *)&PORT;

這似乎適用於我的服務器代碼。 但是當我在我的客戶端代碼中編寫它時,它會給出以下錯誤消息:

lvalue required as unary ‘&’ operand

我究竟做錯了什么?

C預處理器在這里發揮作用。 在對代碼進行預處理之后,這就是它的樣子。

char *ptr = (char *)&9987;

& )運算符的地址可以應用於變量而不是文字。

預處理器宏沒有內存,在編譯時宏被替換為值。 所以這里發生的實際事情是char *ptr = (char *)&9987 ;這是不可能的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM