nixp.ru v3.0

25 мая 2017,
четверг,
13:43:35 MSK

DevOps с компанией «Флант»
Fatal написал 21 ноября 2004 года в 20:34 (469 просмотров) Ведет себя как мужчина; открыл 123 темы в форуме, оставил 484 комментария на сайте.

/*

Дорого времени суток!

Объясните, пожалуйста, почему выдается ошибка? А если поставить эти две переменные в функцию main(), то ошибки не будет.

(c++ tmp.c компилиться без ошибок)

*/

#include

#include

#include

short s=0;

struct sembuf sem={0,0,s};

int main(void){

return 0;

}

/*

Ошибка:

/home/alec/progs/hw/sem> cc tmp.c

tmp.c:6: initializer element is not constant

tmp.c:6: (near initialization for `sem.sem_flg’)

*/

Uncle Theodore

Написано же:

>>initializer element is not constant

Это из-за твоей s в инициализации структуры. Поставь туда 0, идеологически неверно, конечно, но она проглотит.

Почитай вот тут. http://www.unix.org.ua/c/h16.htm Основная идея — глобальная переменная бывает только static или extern, и должна инициализироваться константой.

Good Luck,

UT

Fatal

Большое спасибо!