Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
 Аватар для VladSharikov
25 / 25 / 7
Регистрация: 02.12.2010
Сообщений: 824

Не увеличивает глобальную переменную

10.06.2013, 23:56. Показов 1647. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Когда пытаюсь скомпилировать: g++ -o myprg myprg.c не компилирует. выдает ошибку: в строке 30. Говорит неправильный левый операнд для знака равно. Почему? Пока до другого способа как увидеть содержимое, кроме как через глобальную переменную, не открыл. Может кто-то подскажет? Или помогите разобраться с этим. Не гордый.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
 
#define CUR_FILE_SIZE 0 
 
void ctrl_c_handler(int sig) {
    printf("Current file size: %d\n", CUR_FILE_SIZE);
}
 
int main(int argc, char *argv[]) {
    struct sigaction act;
    sigset_t mask;
    int iter = 0;
    sigemptyset(&mask);
    sigaddset(&mask, SIGINT);
    sigprocmask(SIG_SETMASK, &mask, NULL);
    sigaddset(&mask, SIGINT);
    act.sa_mask = mask;
    act.sa_handler = &ctrl_c_handler;
    act.sa_flags = 0;
    if(sigaction(SIGINT, &act, NULL)==-1) {
        printf("sigaction error()!\n");
        exit(3);
    }
    while(1) {
        iter++;
        printf("iter %d\n", iter);
        CUR_FILE_SIZE = iter+1;
        sleep(1);
    }
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.06.2013, 23:56
Ответы с готовыми решениями:

Как создать глобальную переменную?
Доброй ночи. Спасайте. Надо создать глобальную переменную string, Значение которой будет задаваться в одном классе, а использоваться в...

Немогу объявить глобальную переменную
В пустом заголовочном файле пишу int some_global_variable; и компилятор выдает ошибку hand.obj : error LNK2005: &quot;int...

Как создать глобальную переменную?
Создаю небольшой проект. Несколько функций и собственно тело программы. В теле объявил переменную int rep. Далее мне надо обратиться к ней...

8
Псевдослучайный
1946 / 1146 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
11.06.2013, 00:23
Посмотри на вывод препроцессора командой
Bash
1
gcc -E myprog.c
всё должно стать очевидным(простыню из включаемых файлов смотреть не надо, только конец вывода, относящийся, собственно к этому коду).
И да, зачем собирать код на си компилятором плюсов?
1
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
11.06.2013, 00:32
Иди учи СИ. CUR_FILE_SIZE не является переменной.
1
 Аватар для VladSharikov
25 / 25 / 7
Регистрация: 02.12.2010
Сообщений: 824
11.06.2013, 00:37  [ТС]
хм.
C++
1
0 = iter+1;
что сие обозначает? 0 он видит. Поставим 5, проделаем тоже будет стоять 5. Но это как-то странно. Он чтоли не дает работать с глобальной переменной? В смысле не дает изменять ее? Но по-моему С++ в Visual Studio бывали случаи и я изменял глобальные переменные.

Как поступить здесь?

Цитата Сообщение от NoMasters Посмотреть сообщение
И да, зачем собирать код на си компилятором плюсов?
потому что не работает iostream, если юзать просто gcc.
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
11.06.2013, 10:09
Цитата Сообщение от VladSharikov Посмотреть сообщение
Он чтоли не дает работать с глобальной переменной?
Что из слов: "это не переменная" тебе непонятно?
0
 Аватар для VladSharikov
25 / 25 / 7
Регистрация: 02.12.2010
Сообщений: 824
11.06.2013, 13:38  [ТС]
Dmitriy_M, Ты не видишь кого я цитирую? Я по-моему не к тебе обращался. Твои комментарии такого содержания решить проблему не помогают.
Я уже разобрался с проблемой сам. Нужно было просто сказать, что нужно написать int cur_size=0;,а не #define юзать
0
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
11.06.2013, 14:07
глобальные переменные вообще лучше не юзать
0
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
23.10.2013, 11:20
Цитата Сообщение от VladSharikov Посмотреть сообщение
Dmitriy_M, Ты не видишь кого я цитирую? Я по-моему не к тебе обращался. Твои комментарии такого содержания решить проблему не помогают.
Я уже разобрался с проблемой сам. Нужно было просто сказать, что нужно написать int cur_size=0;,а не #define юзать
#define - команда препроцессору, которая в данном случае говорит ему подставлять правый параметр в местах, где употребляется левый параметр.
Вам правильно сказали о том, что надо учить Си, и следовало сказать спасибо @Dmitriy_M, а не "решать" проблему.
1
23.10.2013, 19:58  [ТС]

Не по теме:

programina,
у всех могут быть ошибки, а он, Dmitriy_M, приходит и влезает совершенно не в тему. я давным давно ничего не писал на Си на тот момент, совершенно вылетело из головы значение define. Сейчас уже 10ый месяц, обсуждение шло 4 месяца назад. Я до этого год не пользовался и еще года 2 не вспомню про Си. Имел я право что-то забыть? Или у вас разве такого не было?

Да и почему я должен говорить спасибо тому, кто мне хамит?

Да и хотя бы взять Вас. Вы пришли и нормально объяснили, что я сделал не так, что define не задает переменную, а жестко определяет ее и не дает изменить в будущем. И сравните с его ответом. Где толковый конструктивный ответ?

Вот Вам - спасибо! На этом предлагаю закончить дискуссию и не поднимать тему. Проблема давным давно решена.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.10.2013, 19:58
Помогаю со студенческими работами здесь

Как обьявить глобальную переменную
Как объявить глобальную переменную Есть несколько *CPP* и *.h* файлы. Надо объявить переменную HWND hwnd чтобы она была доступна в...

Как задать глобальную переменную?
Как задать глобальную переменную которая будет работать на всех формах проги? Заранее спасибо.

Как объявить глобальную переменную в Dev-C++ 4.9.9.2?
Попробовал написать из справочника по С++ такую программу: #include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; ...

Как и где описать глобальную переменную?
Как и где описать глобальную переменную? В главном класее я определяю указутель на CDaoDatabase CDaoDatabase* DBase; DBase = new...

Как сделать одну глобальную переменную
Есть многофайловый проект. К примеру 5 файлов(5 &quot;H&quot; файлов+для них 5 &quot;срр&quot; файлов, пускай в каждом файле будет лежать класс) и есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru