[英]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.