Fatal
написал 21 ноября 2004 года в 20:34 (939 просмотров)
Ведет себя
как мужчина; открыл 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’)
*/
Последние комментарии
-
fhunter, 29 ноября в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
-
DimitriuS, 6 сентября в 10:37 → Перекличка 14
-
Иванн, 9 апреля в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
-
Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
-
fhunter, 26 февраля 2021 года в 20:45 → A, MX, PTR — Настройка и проверка извне. Как ? 2

Экология и вегетарианство на благо всем живым существам Планеты.
Написано же:
>>initializer element is not constant
Это из-за твоей s в инициализации структуры. Поставь туда 0, идеологически неверно, конечно, но она проглотит.
Почитай вот тут. http://www.unix.org.ua/c/h16.htm Основная идея — глобальная переменная бывает только static или extern, и должна инициализироваться константой.
Good Luck,
UT
Большое спасибо!