Если вы используете gcc
в режиме командной строки (здесь с Linux) со следующим исходным кодом:
$ cat test.c
#include <stdio.h>
int main(int argc, char **argv)
{
int tasknumber;
scanf ("%d", tasknumber);
return 0;
}
, вы получите:
$ gcc -Wall test.c
test.c: In function ‘main’:
test.c:6:5: attention : format ‘%d’ expects argument of type ‘int *’, but argument 2 has type ‘int’ [-Wformat=]
scanf ("%d", tasknumber);
^
test.c:6:11: attention : ‘tasknumber’ is used uninitialized in this function [-Wuninitialized]
scanf ("%d", tasknumber);
^
Если вы исправите свой исходный код:
$ cat test.c
#include <stdio.h>
int main(int argc, char **argv)
{
int tasknumber;
scanf ("%d", &tasknumber);
return 0;
}
предупреждений больше не будет:
$ gcc -Wall test.c
$
Примечание: это всего лишь пример получения предупреждений первого уровня. Вы также можете использовать другие параметры g cc, например -pedantic
, чтобы получать больше предупреждений или -std=c11
, чтобы проверить соответствие стандарту C11.