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