Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/40: Рейтинг темы: голосов - 40, средняя оценка - 4.63
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452

Защита от повторного включения файла

27.06.2015, 16:15. Показов 8296. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем приятного дня !

Файл sada.hpp пытаюсь подключить несколько раз.

сам файл sada.hpp реализован так

C++
1
2
3
4
5
6
7
8
9
10
11
12
#ifndef DEBUG
 
#define DEBUG
 
void sada(int &x)
 
{
    x *= x;
 
}
 
#endif
подскажите пожалуйста , нужно ли после
C++
1
#define DEBUG
ставить символ отступа \ ?

тоесть делать так

C++
1
2
3
4
5
#define DEBUG \
void sada(int &x) \
 { \
x *= x; \
}
полный код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include<conio.h>
#include "sada.hpp"
#include "sada.hpp"
#include "sada.hpp"
#include "sada.hpp"
 
using namespace std;
 
 
int main()
 
{
    int x = 100;
 
    sada(x);
 
    cout << "\n*** "<< x << "\n"; 
 
    getch();
 
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.06.2015, 16:15
Ответы с готовыми решениями:

HP Pavilion g6 странно себя ведёт после повторного включения
День добрый, В общем ноутбук HP g6, и проблема такая: ноутбук включается и работает идеально, но после выключения (через пуск) ноутбук...

Защита программы от повторного использования
Всем привет, пожалуйста не ругайтесь за дублирование темы, я видел несколько созданных тем про подключение формы vb.net к удаленной базе...

Защита от повторного логина из другого клиента.
Situatciya: User loginetsya v sistemy i esli kto-to khochet s grygogo clienta loginyt'sya s ego loginom to posilat' ego za vodkoj. Kak...

12
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
27.06.2015, 16:42
Лучший ответ Сообщение было отмечено RAFA91 как решение

Решение

Не надо.
1
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
28.06.2015, 15:01  [ТС]
Цитата Сообщение от castaway Посмотреть сообщение
Не надо.

так вроде
C++
1
#define
не любит переход на новую строку без символа \

к примеру

C++
1
2
3
#define Sada 
 
cout << "\n888888888\n";
это ошибка

а так нет

C++
1
2
3
#define Sada \
\
cout << "\n888888888\n";
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
28.06.2015, 15:06
Лучший ответ Сообщение было отмечено RAFA91 как решение

Решение

Цитата Сообщение от RAFA91 Посмотреть сообщение
DEBUG
я бы не стал этим именем пользоваться, его используют компиляторы для компиляции отладочной версии
Цитата Сообщение от RAFA91 Посмотреть сообщение
не любит переход на новую строку без символа \
ты определись что тебе от макроса нужно
1
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
28.06.2015, 15:24
Лучший ответ Сообщение было отмечено RAFA91 как решение

Решение

Цитата Сообщение от RAFA91 Посмотреть сообщение
это ошибка
Это ошибка только из-за того, что ты вне функции пишешь это:
C++
1
cout << "\n888888888\n";
1
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
28.06.2015, 15:36  [ТС]
Цитата Сообщение от castaway Посмотреть сообщение
Это ошибка только из-за того, что ты вне функции пишешь это:
а если вместо функции будет класс ?

_____________________________________

ValeryS мне нужна защита от многократного включения файла.
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
28.06.2015, 15:40
Лучший ответ Сообщение было отмечено RAFA91 как решение

Решение

Цитата Сообщение от RAFA91 Посмотреть сообщение
ValeryS мне нужна защита от многократного включения файла.
и что? имя макросу придумать не можешь?
имя DEBUG используют компиляторы
обычно для зашиты для имени макроса берут имя файла
например

sada.hpp
C++
1
2
3
4
#ifndef  _SADA_HPP
 #define _SADA_HPP
..................
#endif
1
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
28.06.2015, 15:52
Лучший ответ Сообщение было отмечено RAFA91 как решение

Решение

Цитата Сообщение от RAFA91 Посмотреть сообщение
а если вместо функции будет класс ?
Вместо какой функции?
1
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
29.06.2015, 13:52  [ТС]
вместо функции

C++
1
2
3
4
5
void sada(int &x) 
 
{ 
    x *= x;
}
к примеру класс Daba

файл sada.hpp

C++
1
2
3
4
5
6
7
8
9
#ifndef DEBUG
 
#define DEBUG 
 
class Daba
 
{};
 
#endif
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include<conio.h>
#include "sada.hpp"
#include "sada.hpp"
#include "sada.hpp"
#include "sada.hpp"
 
using namespace std;
 
 
int main()
 
{
    int x = 100;
 
    Daba A;
 
    cout << "\n*** "<< x << "\n"; 
 
    getch();
 
    return 0;
}
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
29.06.2015, 13:58
Цитата Сообщение от RAFA91 Посмотреть сообщение
к примеру класс Daba
Не важно что там, хоть функция, хоть класс, хоть переменная, хоть константа, хоть там вообще ничего нет.
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
29.06.2015, 14:42  [ТС]
малость понял.

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

C++
1
2
3
4
5
6
7
#ifndef DEBUG
 
#define DEBUG 
 
int x = 333;
 
#endif
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
29.06.2015, 14:46
Цитата Сообщение от RAFA91 Посмотреть сообщение
тоесть в данном случае переменная х будет как глобальная
Не как, а именно глобальная.
1
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
29.06.2015, 17:10  [ТС]
Спасибо - теперь понял
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.06.2015, 17:10
Помогаю со студенческими работами здесь

Как защитится от повторного запуска Service (защита от дурака)?
На вся кий случай хочу проставить защиту. Работает одновременно 4 сервиса и ситуаций когда к ним есть обращения, а когда нет куча. При...

Victoria 5. отключил MBR OFF, после повторного включения MBR ON и перегрузки остается MBR OFF. В системе - unlocated
Приветствую Вас :) Такая беда: - работаю с идешкой PHPStorm. После одной запары стала недоступна рабочая папка: при навигации...

Блокировка повторного запуска уже открытого файла
Помогите пожалуйста с кодом. Нужна программа, которая блокирует запуск файла если он уже открыт, т.е. я так понимаю условие if и путь...

Mutex - Запретить использование повторного запуска файла
Можно ли в с++ запретить повторные запуски экземпляра приложения? Например в c# можно было запретить повторный запуск таким способом: ...

Решить проблему повторного открытия Excel файла
Помогите решить проблему повторного открытия excel файла. Файл открываю так: //Открыть соединение с базой данных. procedure...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru