Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

#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) но библиотека не включается. Почему?

15
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
29.08.2013, 04:00 #2
Цитата Сообщение от Ko Посмотреть сообщение
первый вариант свежий
первый вариант не стандартный и может не поддерживаться компилятором
1
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
29.08.2013, 04:09  [ТС] #3
Цитата Сообщение от Croessmah Посмотреть сообщение
первый вариант не стандартный и может не поддерживаться компилятором
я использую только intel компилятор) а так то это одно и тоже???
0
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
29.08.2013, 04:18 #4
Цитата Сообщение от Ko Посмотреть сообщение
а так то это одно и тоже?
Даже не знаю как ответить. Вы в курсе что такое #pragma вообще?
0
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
29.08.2013, 04:34  [ТС] #5
Цитата Сообщение от Croessmah Посмотреть сообщение
Даже не знаю как ответить. Вы в курсе что такое #pragma вообще?
догадываюсь)

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

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

C++
1
#pragma once
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
29.08.2013, 14:19 #10
Цитата Сообщение от ВСарости Посмотреть сообщение
Как раз недавно с этим столкнулся. MS Visual Studio 12 напрочь игнорит конструкцию
чем докажешь? УМВР
0
ВСарости
0 / 0 / 0
Регистрация: 26.08.2013
Сообщений: 10
29.08.2013, 15:15 #11
Цитата Сообщение от Jupiter Посмотреть сообщение
чем докажешь? УМВР
Хм... У меня - нет. Доказывать лень. Сойдёт аргументация?
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
29.08.2013, 16:05 #12
Цитата Сообщение от ВСарости Посмотреть сообщение
Сойдёт аргументация?
ну попробуй
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.08.2013, 16:16 #13
Цитата Сообщение от ВСарости Посмотреть сообщение
MS Visual Studio 12 напрочь игнорит конструкцию
Такая конструкция везде работает. Только нужно пнимать, что это действует в пределах одного файла. Некоторые думают, что это может защитить от множественных определений в нескольких файлах.
1
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
29.08.2013, 16:37  [ТС] #14
Цитата Сообщение от alsav22 Посмотреть сообщение
Такая конструкция везде работает. Только нужно пнимать, что это действует в пределах одного файла. Некоторые думают, что это может защитить от множественных определений в нескольких файлах.
спасибо, вот это я и хотел услышать
0
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
29.08.2013, 16:54 #15
Цитата Сообщение от alsav22 Посмотреть сообщение
Некоторые думают, что это может защитить от множественных определений в нескольких файлах.
Тогда пускай идут читают книжки

C++
1
2
int arr [ size ] ;
arr [ size ] = 0 ;
В этом коде получается массив виноват
1
29.08.2013, 16:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2013, 16:54
Привет! Вот еще темы с ответами:

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

[c++, msvc] #pragma suppress warning - C++
Всем привет. Вижал студия 2013. Рассмотрим код: http://rextester.com/FCO39975 //Title of this code //Compiler Version...

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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