Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 246
#1

Форумчане разъясните #pragma once) - C++

29.08.2013, 03:44. Просмотров 1109. Ответов 15
Метки нет (Все метки)

C++
1
#pragma once
и
C++
1
2
3
4
5
#ifndef Variables_h_
#define Variables_h_
....
 
#endif
это что одно и тоже? первый вариант свежий а второй старьё что ли?)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2013, 03:44     Форумчане разъясните #pragma once)
Посмотрите здесь:

#pragma once - C++
Можно ли считать директиву #pragma once полноценно заменой техники #ifndef MYFILE_H #define MYFILE_H ... #end if

#pragma once - C++
Здравствуйте #pragma once Куда его лучше вставлять ? В файл самого класс(например, сf.h) или в реализацию его функций (cf.cpp)?

#pragma once - C++
Здравствуйте. Есть три файла (для удобства забудем о двух других .cpp): Main.cpp Head1.h Head2.h //Main.cpp #include...

Использование #pragma once - C++
Доброго времени суток, форумчане! Проблема следующего характера: Есть среда разработки Visual Studio Community 2017 Версия 15.0.26228.4...

Препроцессор #pragma - C++
Как я понимаю, препроцессор #pragma используется, в частности, для выравнивания полей в структурах. Например, в заголовочном файле перед...

Не работает #pragma comment - C++
Пишу так #pragma comment(lib,libgdi32.a) но библиотека не включается. Почему?

Директива препроцессора pragma - C++
Добрый день! Помогите, пожалуйста, не могу понять смысл такой записи. (интересуют строки с участием _PACKED(строки 2-6 и 51-60), и что...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13059 / 7322 / 817
Регистрация: 27.09.2012
Сообщений: 18,074
Записей в блоге: 3
Завершенные тесты: 1
29.08.2013, 04:00     Форумчане разъясните #pragma once) #2
Цитата Сообщение от Ko Посмотреть сообщение
первый вариант свежий
первый вариант не стандартный и может не поддерживаться компилятором
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 246
29.08.2013, 04:09  [ТС]     Форумчане разъясните #pragma once) #3
Цитата Сообщение от Croessmah Посмотреть сообщение
первый вариант не стандартный и может не поддерживаться компилятором
я использую только intel компилятор) а так то это одно и тоже???
Croessmah
Модератор
Эксперт CЭксперт С++
13059 / 7322 / 817
Регистрация: 27.09.2012
Сообщений: 18,074
Записей в блоге: 3
Завершенные тесты: 1
29.08.2013, 04:18     Форумчане разъясните #pragma once) #4
Цитата Сообщение от Ko Посмотреть сообщение
а так то это одно и тоже?
Даже не знаю как ответить. Вы в курсе что такое #pragma вообще?
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 246
29.08.2013, 04:34  [ТС]     Форумчане разъясните #pragma once) #5
Цитата Сообщение от Croessmah Посмотреть сообщение
Даже не знаю как ответить. Вы в курсе что такое #pragma вообще?
догадываюсь)

Добавлено через 1 минуту
давайте конкретизируем вопрос, в обоих случаях будет один и тот же эффект?)
Croessmah
Модератор
Эксперт CЭксперт С++
13059 / 7322 / 817
Регистрация: 27.09.2012
Сообщений: 18,074
Записей в блоге: 3
Завершенные тесты: 1
29.08.2013, 04:39     Форумчане разъясните #pragma once) #6
Цитата Сообщение от Ko Посмотреть сообщение
в обоих случаях будет один и тот же эффект?)
Конечный эффект аналогичный
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 246
29.08.2013, 05:11  [ТС]     Форумчане разъясните #pragma once) #7
Цитата Сообщение от Croessmah Посмотреть сообщение
Конечный эффект аналогичный
а какой вариант первый появился на свет ?
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
29.08.2013, 06:32     Форумчане разъясните #pragma once) #8
Ko, здесь вроде все подробно разъяснено:
#pragma once
#ifdef... #ifndef, #endif
#define - с пункта 3.3
и снова #define, только немного по другому
ВСарости
0 / 0 / 0
Регистрация: 26.08.2013
Сообщений: 10
29.08.2013, 14:06     Форумчане разъясните #pragma once) #9
Цитата Сообщение от Ko Посмотреть сообщение
это что одно и тоже? первый вариант свежий а второй старьё что ли?)
Как раз недавно с этим столкнулся. MS Visual Studio 12 напрочь игнорит конструкцию

C++
1
2
3
4
5
#ifndef Variables_h_
#define Variables_h_
....
 
#endif
но корректно отрабатывает

C++
1
#pragma once
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
29.08.2013, 14:19     Форумчане разъясните #pragma once) #10
Цитата Сообщение от ВСарости Посмотреть сообщение
Как раз недавно с этим столкнулся. MS Visual Studio 12 напрочь игнорит конструкцию
чем докажешь? УМВР
ВСарости
0 / 0 / 0
Регистрация: 26.08.2013
Сообщений: 10
29.08.2013, 15:15     Форумчане разъясните #pragma once) #11
Цитата Сообщение от Jupiter Посмотреть сообщение
чем докажешь? УМВР
Хм... У меня - нет. Доказывать лень. Сойдёт аргументация?
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
29.08.2013, 16:05     Форумчане разъясните #pragma once) #12
Цитата Сообщение от ВСарости Посмотреть сообщение
Сойдёт аргументация?
ну попробуй
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.08.2013, 16:16     Форумчане разъясните #pragma once) #13
Цитата Сообщение от ВСарости Посмотреть сообщение
MS Visual Studio 12 напрочь игнорит конструкцию
Такая конструкция везде работает. Только нужно пнимать, что это действует в пределах одного файла. Некоторые думают, что это может защитить от множественных определений в нескольких файлах.
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 246
29.08.2013, 16:37  [ТС]     Форумчане разъясните #pragma once) #14
Цитата Сообщение от alsav22 Посмотреть сообщение
Такая конструкция везде работает. Только нужно пнимать, что это действует в пределах одного файла. Некоторые думают, что это может защитить от множественных определений в нескольких файлах.
спасибо, вот это я и хотел услышать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2013, 16:54     Форумчане разъясните #pragma once)
Еще ссылки по теме:

О #pragma warning(disable: 4786) - C++
Вот создаю пустое приложение Win32 Console Application. Добавляю к примеру файл ex.cpp со следующим содержанием: #include <string> ...

Что такое stract pragma и union - C++
Учусь писать программки для микроконтроллеров, и в большинстве примеров используют эти штучки, пробовал гуглить, но до конца их сути так и...

Почему не работает #pragma omp task? - C++
Сижу быструю сортировку распараллеливаю. Использую подручные средства, а именно Visual Studio 2013 Ultimate. Программа никак не хочет...

Можно ли директивой #pragma получить ассемблерный листинг? - C++
Собственно, сабж. Не могу найти соответствующую функцию у #pragma. Есть она? Ключи компиляции уж больно глубоко зарыты. Компилятор...

уважаемые форумчане не могу разобраться с перегрузкой - C++
задание такое: выполнить перегрузку перечисленных операций, закрепив за ними соответствующий функциональный смысл. Строка символов. ^ -...


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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
13059 / 7322 / 817
Регистрация: 27.09.2012
Сообщений: 18,074
Записей в блоге: 3
Завершенные тесты: 1
29.08.2013, 16:54     Форумчане разъясните #pragma once) #15
Цитата Сообщение от alsav22 Посмотреть сообщение
Некоторые думают, что это может защитить от множественных определений в нескольких файлах.
Тогда пускай идут читают книжки

C++
1
2
int arr [ size ] ;
arr [ size ] = 0 ;
В этом коде получается массив виноват
Yandex
Объявления
29.08.2013, 16:54     Форумчане разъясните #pragma once)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru