_Noreturn function specifier báo cho trình biên dịch biết hàm sẽ không trả về. Nếu chương trình dùng return bên trong, trình biên dịch sinh lỗi compile-time.
Ví dụ có _Noreturn
#include <stdio.h>
#include <stdnoreturn.h>
_Noreturn void function() {
return; // lỗi: hàm noreturn có câu lệnh return
}
int main() {
printf("The returned value: %d\n", function());
return 0;
}
Kết quả
Chương trình kết thúc bất thường [Warning] function declared 'noreturn' has a 'return' statement
Nếu hàm bình thường thì chạy tốt.
Ví dụ hàm bình thường
#include <stdio.h>
int function() {
return 86;
}
int main() {
printf("The returned value: %d\n", function());
return 0;
}
Kết quả
The returned value: 86