C++ EXIT_SUCCESS, EXIT_FAILURE
EXIT_SUCCESS, EXIT_FAILURE
這兩個macro定義於C語言的<stdlib.h>
(或C++的<cstdlib>
):
#define EXIT_SUCCESS /*implementation defined*/
#define EXIT_FAILURE /*implementation defined*/
它們可以被用來當做exit
函數的參數,亦或是main
函數的回傳值。
我們知道通常函數回傳0
是代表執行成功,而回傳非零的值則代表執行失敗。那麼為什麼還要特別定義這兩個macro呢?
根據Should I return EXIT_SUCCESS or 0 from main()?:
EXIT_FAILURE, either in a return statement in main or as an argument to exit(), is the only portable way to indicate failure in a C or C++ program.
即,EXIT_FAILURE
是在C/C++中唯一一種 在多種平台通用的 指出程序出錯的方式。
On the other hand, if the program never signals failure, you can use either 0 or EXIT_SUCCESS. Both are guaranteed by the standard to signal successful completion.
在程序不會出錯的情況下,我們則可以隨意挑選要使用return 0
或return EXIT_SUCCESS
。