[问题] 看不懂这行code..

楼主: chrisenzo (5566)   2015-01-31 00:01:16
char *username = (char *) -1;
如题
对指标还是不太熟
请问这行code的意思是?
谢谢
作者: azureblaze (AzureBlaze)   2015-01-31 00:07:00
放一个固定的值用来代表这个变量还没有东西在里头后面可以if(username==-1) error("username not set")至于为何不用0就好了... 大概"空的"也是有效状态吧
作者: x000032001 (版废了该走了)   2015-01-31 00:13:00
用NULL或nullptr就好啦
楼主: chrisenzo (5566)   2015-01-31 00:37:00
那为何不char *username = -1就好呢?
作者: tjjh89017 (伊达政宗)   2015-01-31 01:07:00
@chri: 这样会喷未转型的警告
作者: tomnelson   2015-01-31 03:11:00
-1会被compiler默认视为int型态,所以一定需要强制转型.
作者: haoboo (萨伊克斯)   2015-02-01 00:16:00
没有强转型有些compiler会不给你过,直接跳error
作者: remmurds (Stronghold)   2015-02-01 10:59:00
非常不建议这样写

Links booklink

Contact Us: admin [ a t ] ucptt.com