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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
GroundZero
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 9
#1

непонятня смысловая нагрузка (#define _In_) - C++

01.11.2013, 14:03. Просмотров 1542. Ответов 37
Метки нет (Все метки)

#define _In_

SWITCH_DECLARE(const switch_state_handler_table_t *) switch_core_get_state_handler(_In_ int index);

Не понятно зачем объявляется _In_
и какую смысловую нагрузку он несет во входном параметре (_In_ int index)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2013, 14:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос непонятня смысловая нагрузка (#define _In_) (C++):

смысловая задача - C++
Вычислить значение квадратов четных чисел натурального ряда от K до M.

c++11 и $define - C++
Есть код который прекрасно компилируется без -std=c++11, но как только я включаю эту опцию то константы препроцессора не заменяются и...

define - C++
И еще такой вопрос для чего служит #define ??

define не - C++
Здравствуйте. "Дефайню" "%f" для вывода: #define fss "%f"; . И потом делаю вывод вот такой вот: for(i=0;i<n;i++) fscanf(in,fss,&a->di);. И...

#define - C++
#define зачем нужна это заголовочный файл какие у него функции и как им ползоватса?

#define c :: - C++
Подскажите как реализовать такую замену: #define sa2::sys::getClientKernel()->getXDBTManager() cls_SimpleXDBTManager::Instance() ...

37
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
01.11.2013, 14:07 #2
Цитата Сообщение от GroundZero Посмотреть сообщение
Не понятно зачем объявляется _In_
Чтобы наглядно показать, что параметр является сугубо входным.
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
01.11.2013, 14:14 #3
Где то должна стоять проверка примерно такая

Цитата Сообщение от GroundZero Посмотреть сообщение
SWITCH_DECLARE
Это на макрос похоже.

Где то в нем может быть должно быть, что то вроде этого:

#ifdef(_In_)
//то добавляем какой то код
#else
//делаем другое что то

От если он не определен то #else сработает, если определен, то ifdef

Добавлено через 2 минуты
Цитата Сообщение от GroundZero Посмотреть сообщение
SWITCH_DECLARE(const switch_state_handler_table_t *) switch_core_get_state_handler(_In_ int index);
А да ладно, то я напутал, тут просто _In_ замениться на пустое место и все. КАк товарищ Croessmah, сказал просто что б удобней читать было.
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,233
01.11.2013, 14:17 #4
Цитата Сообщение от GroundZero Посмотреть сообщение
и какую смысловую нагрузку он несет во входном параметре
для компилятора никакую
для программиста что параметр входной
много есть таких пустых макросов
ну и конечно заголовочный файл нужно подключать где макрос определен
0
Убежденный
Ушел с форума
Эксперт С++
15708 / 7218 / 1139
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
01.11.2013, 14:17 #5
Цитата Сообщение от ninja2 Посмотреть сообщение
КАк товарищ Croessmah, сказал просто что б удобней читать было.
Не только.
См. например, это:

SAL Annotations
http://msdn.microsoft.com/en-us/library/ms235402(v=vs.100).aspx
1
GroundZero
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 9
01.11.2013, 14:19  [ТС] #6
#ifndef __ATTR_SAL
/* used for msvc code analysis */
/* http://msdn2.microsoft.com/en-us/library/ms235402.aspx */
#define _In_
#define _In_z_

.....

открыл ссылку - но чето ничего не понял
0
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
01.11.2013, 14:20 #7
Вот Вам из книги Макконнелла:
непонятня смысловая нагрузка (#define _In_)
0
GroundZero
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 9
01.11.2013, 14:20  [ТС] #8
увидел прошлый код после того как опубликовал свой

То есть это грубо говоря документирование для самого программиста?
0
Croessmah
01.11.2013, 14:21
  #9

Не по теме:

Цитата Сообщение от ninja2 Посмотреть сообщение
Где то в нем может быть должно быть, что то вроде этого:
жесть...

0
GroundZero
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 9
01.11.2013, 14:21  [ТС] #10
а я кроме кернигана ритчи и Стауструпа других книг не знал - Спасибо
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
01.11.2013, 14:27 #11
Цитата Сообщение от Убежденный Посмотреть сообщение
Не только.
А ясно и для того что бы показать что параметр является сугубо входным. Ок.

Добавлено через 4 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
жесть...
Не ну я не знал что просто так можно макросы определять без смысловой нагрузки, думал там было что то такое, как например от мы определяем макрос #define DEBUG и дальше пишем код:
#ifdef DEBUG
//код дебага
#endif

Я читал что пустые макросы только для условий определяются, а оказалось и для документирования как метки

Я думал просто определяет включать код или нет, а все оказалось по простому.
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,233
01.11.2013, 14:27 #12
Croessmah,
тогда из твоей цитаты напрашивается такой вывод
C++
1
2
#define IN const 
#define OUT
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
01.11.2013, 14:32 #13
ValeryS, Чо такой? у тебя IN тогда замениться на const. Это уже не пустой макрос.
0
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
01.11.2013, 14:33 #14
Цитата Сообщение от ValeryS Посмотреть сообщение
тогда из твоей цитаты напрашивается такой вывод
Да можно многое намудрить
C++
1
2
3
4
5
6
#define IN(type) const type &
#define OUT(type) type &
 
void foo( IN(int) x , OUT(int) y ) {
    y = x * x ;
}
Добавлено через 22 секунды
C++
1
2
3
4
5
int main ( ){
    int c ; 
    foo ( 10 , c ) ;
    std :: cout << c << std :: endl ;
}
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
01.11.2013, 14:42 #15
Цитата Сообщение от Croessmah Посмотреть сообщение
Да можно многое намудрить
Да да препроцессор сильная штука. С его помощью можно писать удобный код.

Добавлено через 7 минут
А от пользуясь случаем хочу спросить: " А что лучше использовать inline функции или макросы?" Вообще предпочтительней что использовать, по идее код получиться один и тот же или это уже на любителя, ну в принципе да можно то и другое (как удобно на выбор).
0
01.11.2013, 14:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2013, 14:42
Привет! Вот еще темы с ответами:

#define - C++
Здравствуйте, дорогие программисты! сразу хочу сказать, что в С++ я совсем недавно, поэтому толком ничего не знаю Во-первых,...

define - C++
Всем здрасьте , что означает эта строчка? #define MAX(a,b) a&gt;b? a:b

#define VS inline - C++
Что работает быстрее: #define SQR(x) x*x void Func() { for(int i = 0; i &lt; 10; ++i) { cout &lt;&lt; SQR(i) &lt;&lt; endl; ...

inline и define - C++
Почему использовать inline-функции лучше, чем использовать команду препроцессора #define? Смысл в том, что лучше лишний раз не трогать...


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

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

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