#include <string.h>
...
extern char *optarg;
...
char *dev = NULL
...
Строка 42
dev = strdup((const char *)optarg);
Пара вопросов
Имеем:
main.c
Код:
Ключи gcc:
OPTS = -std=c99 -O0 -c -g -pg
gcc говорит:
main.c: В функции ‘main’
main.c:42: предупреждение: implicit declaration of function ‘strdup’
main.c:42: предупреждение: assignment makes pointer from integer without a cast
хотя strdup вроде бы декларирована в string.h и все типы соответствуют ожидаемым. Если убрать ключ std=c99 - ворнинги не наблюдаются. Что ему не нравится ?
Вопрос №2
types.h
Код:
typedef unsigned long u32
и т п
и т п
info.c
Код:
Строка 121
fprintf(stdout, "...: %u\n", p->BPB_HiddSec);
fprintf(stdout, "...: %u\n", p->BPB_HiddSec);
где BPB_HiddSec типа u32
Добавляем ключ -Wall (выдать всевозможные ворнинги)
gcc говорит
Код:
info.c:121: предупреждение: format ‘%u’ expects type ‘unsigned int’, but argument 3 has type ‘u32’
Я так понимаю - этот ворнинг нужно просто игнорировать, т.к. с точки зрения правильности кода всё верно ?
А есть ли в gcc прагмы типа disable warning xxx для таких случаев? Или что-то ещё ?
Спасибо за внимание.
Второй вопрос снят. Я затупил. Но остался первый.