రూబిసాహా
ఒరిజినల్ పోస్టర్- డిసెంబర్ 22, 2008
- జనవరి 8, 2009
నేను ఈ కోడ్ స్నిప్పెట్ని ఉపయోగిస్తున్నాను
శూన్యం * హ్యాండిల్_;
ఒకవేళ (హ్యాండిల్_ =dlopen('/సిస్టమ్/లైబ్రరీ/ఫ్రేమ్వర్క్స్/డిస్క్ ఆర్బిట్రేషన్. ఫ్రేమ్వర్క్/వెర్షన్స్/ఎ/డిస్క్ ఆర్బిట్రేషన్', RTLD_NOW))
{
printf('............');
}
లేకపోతే (handle_ =dlopen('/System/Library/PrivateFrameworks/DiskArbitration.Framework/Versions/A/DiskArbitration',RTLD_NOW))
{
printf('.................');
}
కానీ నేను హెచ్చరికను పొందుతున్నాను:
మొదటి పంక్తి కోసం 'అసైన్మెంట్ చుట్టూ ఉన్న కుండలీకరణాలను సత్య విలువగా సూచించండి' i, 'ఫర్' లూప్ కోసం....ఈ హెచ్చరికను వదిలించుకోవడానికి ఎవరైనా నాకు సహాయం చేయగలరా.. TO
kpua
- జూలై 25, 2006
- జనవరి 8, 2009
అయితే, కొన్నిసార్లు ఇది మీ ఉద్దేశాన్ని కోడ్ చేయడానికి సులభమైన మార్గం (అయితే ఇది మీ ఉదాహరణలో తప్పనిసరిగా ఉందని నేను అనుకోను). మీరు if స్టేట్మెంట్లో అసైన్మెంట్ను కలిగి ఉన్నప్పుడు, GCC సాధారణంగా ఇలాంటిదేని ఆశిస్తుంది:
కోడ్: |_+_|
అసైన్మెంట్ చుట్టూ ఉన్న అదనపు కుండలీకరణాలను గమనించండి. కింది లోపాన్ని నివారించడానికి మీరు కుండలీకరణాలను ఉపయోగించాలని GCC సూచిస్తుంది:
కోడ్: |_+_|
ఇది fooకి కేటాయించిన విలువ NULLకి సమానం అని తనిఖీ చేయదు, కానీ fooకి boolean (bar() != NULL)ని కేటాయించండి.
అక్కడ స్పష్టమైన బూలియన్ చెక్ ఇన్ చేయడం ఆచారం మరియు సాధారణంగా మరింత స్పష్టంగా ఉంటుంది, అందుకే GCC దీన్ని ఆశించింది. ఎస్
సాండర్
కు
- ఏప్రిల్ 24, 2008
- జనవరి 9, 2009
కోడ్: |_+_|
సరైన C (bని aకి కేటాయించి మరియు సున్నా కానిది కోసం తనిఖీ చేయండి), కానీ చాలా తరచుగా వ్యక్తులు నిజంగా అర్థం చేసుకుంటారు
కోడ్: |_+_|
if() లోపల అసైన్మెంట్ మినహాయింపు కాబట్టి, GCC దాని గురించి హెచ్చరికను జారీ చేస్తుంది. అలాగే మీ కోడ్ యొక్క భవిష్యత్తు రీడర్ల కోసం, అదనపు కుండలీకరణాలు 'అవును, నేను నిజంగా ఇక్కడ అసైన్మెంట్ని సూచిస్తున్నాను' అని సూచిస్తాయి.
ప్రముఖ పోస్ట్లు