rublesaha
Cartell original- 22 de desembre de 2008
- 8 de gener de 2009
Estic utilitzant aquest fragment de codi
buit * manejar_;
if (handle_ =dlopen('/System/Library/Frameworks/DiskArbitration.Framework/Versions/A/DiskArbitration',RTLD_NOW))
{
printf('............');
}
else if (handle_ =dlopen('/System/Library/PrivateFrameworks/DiskArbitration.Framework/Versions/A/DiskArbitration',RTLD_NOW))
{
printf('.................');
}
Però rebo l'avís:
'suggereix parèntesis al voltant de l'assignació utilitzada com a valor de veritat' per a la primera línia, per exemple, per al bucle 'for'... algú em pot ajudar a desfer-me d'aquest avís? A
kpua
- Jul 25, 2006
- 8 de gener de 2009
Tanmateix, de vegades és la manera més senzilla de codificar el que vols dir (tot i que no crec que sigui necessàriament al teu exemple). Quan teniu una tasca en una declaració if, el GCC generalment espera una cosa com això:
Codi: |_+_|
Observeu els parèntesis addicionals al voltant de la tasca. GCC suggereix que utilitzeu els parèntesis per evitar l'error següent:
Codi: |_+_|
que no comprovaria que el valor assignat a foo sigui igual a NULL, sinó que assignaria el booleà (bar() != NULL) a foo.
També és habitual i, en general, més clar tenir la comprovació booleana explícita, per això GCC ho espera. S
Sander
a
- 24 d'abril de 2008
- 9 de gener de 2009
Codi: |_+_|
és correcta la C (assigna b a a i comprova si no és nul), però la majoria de vegades la gent realment volia dir
Codi: |_+_|
Com que l'assignació dins del if() és l'excepció, GCC emet un avís al respecte. També per als futurs lectors del vostre codi, els parèntesis addicionals indiquen 'sí, realment vull dir l'assignació aquí'.
Entrades Populars