Iba Pa

Mac Warning :magmungkahi ng mga panaklong sa paligid ng assignment na ginamit bilang truth value

R

rublesaha

Orihinal na poster
Disyembre 22, 2008
  • Ene 8, 2009
Hi
Ginagamit ko ang snippet ng code na ito

walang bisa * hawakan_;

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('.................');
}

Ngunit nakakakuha ako ng babala:
'magmungkahi ng mga panaklong sa paligid ng takdang-aralin na ginamit bilang halaga ng katotohanan' para sa unang linya i,e ang para sa 'para' na loop....maaari bang may tumulong sa akin na maalis ang babalang ito.. SA

kpua

Hul 25, 2006


  • Ene 8, 2009
Una, ito ay karaniwang masamang anyo na magkaroon ng mga side-effects sa if() na mga pahayag.

Gayunpaman, kung minsan ito ang pinakasimpleng paraan upang i-code ang ibig mong sabihin (bagama't sa palagay ko ay hindi ito sa iyong halimbawa). Kapag mayroon kang takdang-aralin sa isang if statement, karaniwang inaasahan ng GCC ang ganito:

Code: |_+_|
Pansinin ang mga karagdagang panaklong sa paligid ng takdang-aralin. Iminumungkahi ng GCC na gamitin mo ang mga panaklong upang maiwasan ang sumusunod na error:

Code: |_+_|
na hindi susuriin ang halaga na itinalaga sa foo na katumbas ng NULL, ngunit sa halip ay italaga ang boolean (bar() != NULL) sa foo.

Nakaugalian din at sa pangkalahatan ay mas malinaw na magkaroon ng tahasang boolean check in doon, kaya iyon ang dahilan kung bakit inaasahan ito ng GCC. S

Sander

sa
Abr 24, 2008
  • Ene 9, 2009
Ito rin ay dahil ang pahayag

Code: |_+_|
ay tama C (italaga ang b sa a at tingnan kung hindi zero), ngunit kadalasan ay talagang sinadya ng mga tao

Code: |_+_|
Dahil ang pagtatalaga sa loob ng if() ay ang exception, nag-isyu ang GCC ng babala tungkol dito. Gayundin para sa mga susunod na mambabasa ng iyong code, ang mga dagdag na panaklong ay nagpapahiwatig ng 'oo, ang ibig kong sabihin ay pagtatalaga dito'.