-
Book Overview & Buying
-
Table Of Contents
Extreme C
By :
A function call can end either by using the return keyword or by reaching the end of the function's block. There are also situations in which a function call never ends, and this is usually done intentionally. Look at the following code example contained in Code Box 12-4:
void main_loop() {
while (1) {
...
}
}
int main(int argc, char** argv) {
...
main_loop();
return 0;
}
Code Box 12-4: Example of a function that never returns
As you can see, the function main_loop performs the main task of the program, and if we return from the function, the program could be considered as finished. In these exceptional cases, the compiler can perform some more optimizations, but somehow, it needs to know that the function main_loop never returns.
In C11, you have the ability to mark a function as a no-return function. The _Noreturn keyword from the stdnoreturn.h header file can be used to specify that a function never exits. So, the code in...