URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4830
[ Назад ]

Исходное сообщение
"implicit declaration of function"

Отправлено roman , 08-Ноя-05 15:22 
На линуксе такой код не компилируется

#include <stdio.h>
#include <signal.h>

void
mode_off()
{
}

int
main(void)
{
    static struct sigaction act;

    act.sa_handler = mode_off;
    sigfillset(&(act.sa_mask));
    sigaction(SIGINT, &act, NULL);

    return 0;
}

#gcc -W -Wall -ansi -pedantic -g -o sig sig.c
sig.c: In function `main':
sig.c:12: storage size of `act' isn't known
sig.c:15: warning: implicit declaration of function `sigfillset'
sig.c:16: warning: implicit declaration of function `sigaction'
sig.c:12: warning: unused variable `act'
sig.c:12: storage size of `act' isn't known

также пробовал -std=с99

Но зато успешно компилируется с -posix либо так:
gcc -W -Wall -D__USE_POSIX -pedantic -g

Чем объясняется такое поведение?


Содержание

Сообщения в этом обсуждении
"implicit declaration of function"
Отправлено gruy , 08-Ноя-05 16:51 
>#gcc -W -Wall -ansi -pedantic -g -o sig sig.c

Сам нарывался на такое, убирая -ansi все работало.