Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 9
1

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

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

Author24 — интернет-сервис помощи студентам
#define _In_

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

Не понятно зачем объявляется _In_
и какую смысловую нагрузку он несет во входном параметре (_In_ int index)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.11.2013, 14:03
Ответы с готовыми решениями:

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

Как реализовать директиву #define для создания шаблона отпределения #define ?
Здравствуйте уважаемые. При написании программы появилась необходимость задать шаблон создания #define через #define (извините за...

Скрытие столбцов. Ошибка App-define od obj-define error
Привет) помогите, пожалуйста, ответить на следующие вопросы: 1) выскакивает ошибка: App-define od obj-define error - как бы найти ее...

37
Неэпический
 Аватар для Croessmah
18124 / 10709 / 2063
Регистрация: 27.09.2012
Сообщений: 26,997
Записей в блоге: 1
01.11.2013, 14:07 2
Цитата Сообщение от GroundZero Посмотреть сообщение
Не понятно зачем объявляется _In_
Чтобы наглядно показать, что параметр является сугубо входным.
1
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
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
Модератор
Эксперт по электронике
8958 / 6724 / 921
Регистрация: 14.02.2011
Сообщений: 23,733
01.11.2013, 14:17 4
Цитата Сообщение от GroundZero Посмотреть сообщение
и какую смысловую нагрузку он несет во входном параметре
для компилятора никакую
для программиста что параметр входной
много есть таких пустых макросов
ну и конечно заголовочный файл нужно подключать где макрос определен
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16478 / 7441 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
01.11.2013, 14:17 5
Цитата Сообщение от ninja2 Посмотреть сообщение
КАк товарищ Croessmah, сказал просто что б удобней читать было.
Не только.
См. например, это:

SAL Annotations
http://msdn.microsoft.com/en-u... .100).aspx
1
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-... 35402.aspx */
#define _In_
#define _In_z_

.....

открыл ссылку - но чето ничего не понял
0
Неэпический
 Аватар для Croessmah
18124 / 10709 / 2063
Регистрация: 27.09.2012
Сообщений: 26,997
Записей в блоге: 1
01.11.2013, 14:20 7
Вот Вам из книги Макконнелла:
непонятня смысловая нагрузка (#define _In_)
0
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 9
01.11.2013, 14:20  [ТС] 8
увидел прошлый код после того как опубликовал свой

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

Не по теме:

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

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

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

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

Я думал просто определяет включать код или нет, а все оказалось по простому.
0
Модератор
Эксперт по электронике
8958 / 6724 / 921
Регистрация: 14.02.2011
Сообщений: 23,733
01.11.2013, 14:27 12
Croessmah,
тогда из твоей цитаты напрашивается такой вывод
C++
1
2
#define IN const 
#define OUT
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
01.11.2013, 14:32 13
ValeryS, Чо такой? у тебя IN тогда замениться на const. Это уже не пустой макрос.
0
Неэпический
 Аватар для Croessmah
18124 / 10709 / 2063
Регистрация: 27.09.2012
Сообщений: 26,997
Записей в блоге: 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
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
01.11.2013, 14:42 15
Цитата Сообщение от Croessmah Посмотреть сообщение
Да можно многое намудрить
Да да препроцессор сильная штука. С его помощью можно писать удобный код.

Добавлено через 7 минут
А от пользуясь случаем хочу спросить: " А что лучше использовать inline функции или макросы?" Вообще предпочтительней что использовать, по идее код получиться один и тот же или это уже на любителя, ну в принципе да можно то и другое (как удобно на выбор).
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
01.11.2013, 14:54 16
Цитата Сообщение от Croessmah Посмотреть сообщение
Да можно многое намудрить
Атас!
Цитата Сообщение от ninja2 Посмотреть сообщение
inline функции или макросы
Если писать на плюсах, то "лучше" inline, если на чистом, то "лучше" макросы. А вообще на вкус и цвет.
0
Модератор
Эксперт по электронике
8958 / 6724 / 921
Регистрация: 14.02.2011
Сообщений: 23,733
01.11.2013, 14:57 17
Цитата Сообщение от ninja2 Посмотреть сообщение
А что лучше использовать inline функции или макросы?"
inline функции
макросы обрабатывает препроцессор, точнее не обрабатывает а подставляет значения
и потом в действие вступает компилятор
а inline обрабатывает компилятор
например
C++
1
2
#define mul(a,b) a*b
inline int mul(int a, int b){ return a*b;}
и вызовем так
C++
1
mul(c+d,e+f);
в случае с макросом мы получим
c+d*e+f,что не есть правда
а с inline такого косяка не будет
Цитата Сообщение от ninja2 Посмотреть сообщение
по идее код получиться один и тот же
как видишь нет
зайди в блог к Evg у него рассматривается использование макросов достоинства и недостатки

Добавлено через 1 минуту
Цитата Сообщение от SatanaXIII Посмотреть сообщение
если на чистом, то "лучше" макросы.
а что в Си inline разрешили?
1
Неэпический
 Аватар для Croessmah
18124 / 10709 / 2063
Регистрация: 27.09.2012
Сообщений: 26,997
Записей в блоге: 1
01.11.2013, 15:00 18
Цитата Сообщение от ValeryS Посмотреть сообщение
и вызовем так
ну так макросы тоже нужно писать нормально )))
C++
1
#define mul(a,b) (a)*(b)
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
01.11.2013, 15:02 19
C++
1
#define mul(a,b) ((a)*(b))
0
01.11.2013, 15:03 20

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
а что в Си inline разрешили?
да вроде как давно уже :scratch:

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

Смысловая задача на геометрическую прогрессию
Вы должны своему другу 5 грн. Вместо того, чтобы попросить вас вернуть ему сразу весь долг, Ваш друг предлагает, чтобы вы платили ему...

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

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

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

#define
ребята, подскажите, вернее пролейте свет, на то , как это работает... #include &lt;iostream&gt; #define str(x) #x using namespace...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Winforstrap или красявый дизайн своими руками на HTML+JS+Winform­s
anomal6 04.03.2025
Сидел тут вечером ковырял проект на MAUI, и как же глупо создаются пакеты MSIX и система обновлений пакета публикации, но не об этом. Бывает нужен современный дизайн программы а писать на MAUI,. . .
Формат данных для симуляции физики, посредством распространённы­­­­­­­х не обученных моделей.
Hrethgir 04.03.2025
Что-то как-то снова потерялось, зато катангенсы закатангесились в одном сообщении. На днях писал, что планирую для работы апгрейдить (на этот раз удачно) девайс для работы (конкретно - здоровья для,. . .
Концепция variadic
CoderHuligan 04.03.2025
Мне не очень нравится (а кому это нравится?) что у нас есть отдельно компилятор, отдельно линковщик, причем со своим собственным командным языком. При этом усложнении надо знать помимо языка. . .
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class — два мощных инструмента для обуздания неизменяемых структур данных, каждый со своим уникальным подходом к решению этой задачи. История их появления весьма. . .
Создание производительны­­­х API с Java и gRPC
Wired 04.03.2025
В мире микросервисной разработки вопрос производительности часто становится краеугольным камнем. И хотя REST API давно завоевал сердца разработчиков своей простотой и интуитивностью, при высоких. . .
Что нового в JDK 24
Wired 04.03.2025
JDK 24 — это настоящий прорыв в эволюции Java, который кардинально меняет правила игры. В этом релизе разработчики Oracle наконец-то довели до ума множество критически важных улучшений в. . .
Разработка блокчейн с использованием Java: смарт-контракты и dApp
Wired 04.03.2025
Погружаясь в мир блокчейн-разработки на Java, разработчик получает доступ к внушительному арсеналу инструментов. В отличие от Solidity, который "заперт" в экосистеме Ethereum, Java предоставляет. . .
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru