0xff 255 के मान के साथ एक पूर्णांक स्थिरांक के रूप में देखा जाएगा। आपको हमेशा विभिन्न प्रकारों के बीच इस तरह की तुलना पर ध्यान देना चाहिए। आप यह सुनिश्चित करें कि संकलक सही कोड उत्पन्न होगा होना चाहते हैं, तो आप समान किरदार का उपयोग करना चाहिए:
if(*p == (signed char)0xFF) break;
वैसे भी, सावधान रहना कि अगले बयान होगा नहीं काम उसी तरह:
if((int)*p == 0xFF) break;
इसके अलावा, शायद यह एक बेहतर विचार पर हस्ताक्षर किए वर्ण से बचने के लिए हो सकता है, या, यह आप पर हस्ताक्षर किए वर्ण का उपयोग करना चाहिए उन्हें ऐसे -1 इस मामले में के रूप में हस्ताक्षर किए मूल्यों के साथ तुलना करने के लिए:
if(*p == -1) break;
0xff == - 1 केवल तभी उन मूल्यों को कुछ चार (या अहस्ताक्षरित चार) को निर्दिष्ट किया जाएगा चर:
char a=0xff;
char b=-1;
if(a==b) break;
0xFF हस्ताक्षरित किया गया है, अहस्ताक्षरित नहीं। 0xFFU हस्ताक्षरित संस्करण है। केवल * पी को बढ़ावा देने की जरूरत है। – Niall
निएल: आप काफी सही हैं; मैं जवाब अपडेट करूंगा। –