[問題] 看不懂這行code..

看板C_and_CPP作者 (5566)時間9年前 (2015/01/31 00:01), 編輯推噓1(108)
留言9則, 7人參與, 最新討論串1/1
char *username = (char *) -1; 如題 對指標還是不太熟 請問這行code的意思是? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 174.56.107.236 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1422633679.A.74F.html

01/31 00:07, , 1F
放一個固定的值用來代表這個變數還沒有東西在裡頭
01/31 00:07, 1F

01/31 00:08, , 2F
後面可以if(username==-1) error("username not set")
01/31 00:08, 2F

01/31 00:09, , 3F
至於為何不用0就好了... 大概"空的"也是有效狀態吧
01/31 00:09, 3F

01/31 00:13, , 4F
用NULL或nullptr就好啦
01/31 00:13, 4F

01/31 00:37, , 5F
那為何不char *username = -1就好呢?
01/31 00:37, 5F

01/31 01:07, , 6F
@chri: 這樣會噴未轉型的警告
01/31 01:07, 6F

01/31 03:11, , 7F
-1會被compiler預設視為int型態,所以一定需要強制轉型.
01/31 03:11, 7F

02/01 00:16, , 8F
沒有強轉型有些compiler會不給你過,直接跳error
02/01 00:16, 8F

02/01 10:59, , 9F
非常不建議這樣寫
02/01 10:59, 9F
文章代碼(AID): #1KowhFTF (C_and_CPP)