GCC
#pragma GCC diagnostic [action] [warning-name]
#pragma
: Directive for the compilerGCC diagnostic
: Indicates a diagnostic command specific to GCCaction
: What to do:ignored
,warning
, orerror
warning-name
: The name of the warning, e.g.-Wunused-variable
,-Wreturn-type
, etc.
The function broken_function
has a return type of int
, but it does not contain a return
statement.
This means the function doesn't return a value, even though its declared return type requires one — which violates the function's contract.
main.c
1234567891011#include <stdio.h> int broken_function() { // warning: no return statement in function returning non-void [-Wreturn-type] } int main() { int result = broken_function(); printf("Result: %d\n", result); return 0; }
The directive #pragma GCC diagnostic error "-Wreturn-type"
changes the compiler's behavior so that a warning about a missing return
statement in a function with return type int
is treated as a compilation error instead of just a warning.
main.c
1234567891011121314#include <stdio.h> #pragma GCC diagnostic push #pragma GCC diagnostic error "-Wreturn-type" int broken_function() { // error: no return statement in function returning non-void [-Werror=return-type] } #pragma GCC diagnostic pop int main() { int result = broken_function(); printf("Result: %d\n", result); return 0; }
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Запитайте мені питання про цей предмет
Сумаризуйте цей розділ
Покажіть реальні приклади
Awesome!
Completion rate improved to 5.56
GCC
Свайпніть щоб показати меню
#pragma GCC diagnostic [action] [warning-name]
#pragma
: Directive for the compilerGCC diagnostic
: Indicates a diagnostic command specific to GCCaction
: What to do:ignored
,warning
, orerror
warning-name
: The name of the warning, e.g.-Wunused-variable
,-Wreturn-type
, etc.
The function broken_function
has a return type of int
, but it does not contain a return
statement.
This means the function doesn't return a value, even though its declared return type requires one — which violates the function's contract.
main.c
1234567891011#include <stdio.h> int broken_function() { // warning: no return statement in function returning non-void [-Wreturn-type] } int main() { int result = broken_function(); printf("Result: %d\n", result); return 0; }
The directive #pragma GCC diagnostic error "-Wreturn-type"
changes the compiler's behavior so that a warning about a missing return
statement in a function with return type int
is treated as a compilation error instead of just a warning.
main.c
1234567891011121314#include <stdio.h> #pragma GCC diagnostic push #pragma GCC diagnostic error "-Wreturn-type" int broken_function() { // error: no return statement in function returning non-void [-Werror=return-type] } #pragma GCC diagnostic pop int main() { int result = broken_function(); printf("Result: %d\n", result); return 0; }
Дякуємо за ваш відгук!