Понимание расширенного кода C++ #define оператор
Вот пример оператора define в моем коде, показанном ниже в разделе определение заголовка. Он используется, как показано далее ниже кода в разделе использование заголовка. Вот мои вопросы, если вы можете помочь.
1) я предполагаю, что '>CMAR_ENTRY_CHILD_REF2' заменяется на '(mMar, parenthesizedArgList)' везде, где я его использую. Является ли это точным утверждением?
2) Если приведенное выше утверждение 1) верно, то функция не имеет имени? Я никогда раньше не видел этого в C++. Можно ли определить функцию без имени?
3) Что такое '\' в коде сразу после кода 'parenthesizedArgList' и после 'parenthesizedArgList)\{'?
4) Если у вас есть какие-либо ссылки, которые объясняются ниже, пожалуйста, дайте мне знать. Это трудно найти в google.
//Определение
#define CMAR_ENTRY_CHILD_REF2(mMar, parenthesizedArgList)\ {\ string name=""; //More code below };
//Использование
CMAR_ENTRY_CHILD_REF2(m_array[0], (strName, GetSafeArraye(curve)));
Что я уже пробовал:
я посмотрел в интернете. На данный момент я понимаю основные определения операторов.
Richard MacCutchan
Я не совсем понимаю, чего вы пытаетесь достичь с помощью этого, но это не лучший способ писать функции C++.
nitrous_007
Извините, когда я сказал, что это был "мой код", я имел в виду код компании. Это не мой код. Я вижу около 100 функций, определенных, как указано выше. Я просто пытаюсь понять, что это значит.
Также прошу прощения за двойной пост. Я попытался опубликовать, и codeproject дал мне ошибку, и я, хотя мой первоначальный пост не публиковался. Я удалил старый пост. Codeproject кажется медленным и немного глючным. Когда я пытаюсь удалить свой первоначальный пост, он продолжает вращаться. Мне пришлось обновить страницу вручную, чтобы увидеть, что сообщение было удалено. Мой интернет и браузер(Chrome) хороши и раньше не имели никаких проблем на работе.
Richard MacCutchan
Если вы не понимаете этот код, то вряд ли я смогу это сделать. Тем более что большая часть кода и фактического использования отсутствует.
Что касается вашей проблемы размещения, CodeProject обычно имеет что-то более 50 000 пользователей в интернете, так что иногда он может быть немного медленным в ответе. Это не значит, что он глючит.
nitrous_007
Теперь я это понимаю. Это был просто токен #define identifier ( identifieropt,...,identifieropt)-stringopt в ссылке, которую вы разместили.
Так что в 1 случае страница разбилась. В другом случае страница висела в течение 2 минут. Вероятно, это не ошибка, а просто проблема с ресурсами.