命令行參數(shù)怎么使用 main函數(shù)的參數(shù)argc,為什么不用unsigned int?
main函數(shù)的參數(shù)argc,為什么不用unsigned int?在C語言中,無符號(hào)的類型很少使用,即使不可能有負(fù)值。這與C不同。這樣做的好處之一是避免在執(zhí)行減法時(shí)溢出,從而導(dǎo)致無法檢測(cè)到的錯(cuò)誤。例如,
main函數(shù)的參數(shù)argc,為什么不用unsigned int?
在C語言中,無符號(hào)的類型很少使用,即使不可能有負(fù)值。這與C不同。這樣做的好處之一是避免在執(zhí)行減法時(shí)溢出,從而導(dǎo)致無法檢測(cè)到的錯(cuò)誤。例如,如果我想判斷argc是否大于或等于1,假設(shè)argc的類型是unsigned,并且我寫if(argc-1>=0){…},那么就會(huì)出現(xiàn)一個(gè)錯(cuò)誤。因?yàn)椴还躠rgc是什么,因?yàn)橛幸绯?,括?hào)中的條件總是正確的。這種蟲子不容易找到。如果argc是有符號(hào)類型,則可以避免此問題