En C++ podemos decorar nuestros tipos de devolución con "[[nodiscard]]" que desencadena una advertencia del compilador si los resultados no se utilizan.
Esto es particularmente útil para hacer cumplir los códigos de error
auto dont_forget_to_check = do_something_important(); assert(dont_forget_to_check);¿Existe algo así para C?
No hay una forma estándar de hacer esto, pero gcc admite el atributo warn_unused_result para esto.
__attribute__ ((warn_unused_result)) int foo() { return 5; } int main() { foo(); return 0; }Salida del compilador:
[dbush@db-centos7 ~]$ gcc -g -Wall -Wextra -o x1 x1.c x1.c: In function 'main': x1.c:11:8: warning: ignoring return value of 'foo', declared with attribute warn_unused_result [-Wunused-result] foo(); ^