Популярные вопросы по тегу MACROS

Встроенная функция v. Макрос в C - Какие накладные расходы (память / скорость)?

... ционально-подобных 29 макросов и встроенных функций. Я нашел следующее 28 обсуждение: Pros and Cons of Different macro function / inline methods in C ... но он не дал ответа на мой 27 главный животрепещущий вопрос. А именно, каковы 26 накладные расходы в c при использовании 25 макрос-функции (с пер ...

Могу ли я использовать макросы в исходных файлах Java

... в любом 5 месте моей Java-программы я могу читать 4 консоль формы как int a = new READINT; Но я читаю книги по формам. Java 3 не поддерживает макросы. Кто- ...

Макрос Visual Studio для поиска строки и удаления совпадающих строк

... ем решении Visual Studio (2010 C#) мне 9 нужно удалить все строки кода, содержащие 8 соответствующий строковый шаблон. Например, я 7 ...

Что означает макрос "QT_BEGIN_NAMESPACE" в Qt 5?

... oid createGridGroupBox(); void createFormGroupBox(); enum { NumGridRows = 3, NumButtons = 4 }; QMenuBar *menuBar; QGroupBox *horizontalGroupBox; QGroupBox *gridGroupBox; QGroupBox *formGroupBox; QTextEdit *smallEditor; QTextEdit *bigEditor; QLabel *labels[NumGridRows]; QLineEdit *lineEdits[NumGridRows]; QPushButton *buttons[NumButtons]; QDialogButtonBox *buttonBox; QMenu *fileMenu; QA ...

Можно ли использовать блок кода в качестве аргумента для макроса C?

... 3 я не уверен, нет ли каких-либо угловых случаев, которые 12 могут прийти и укусить меня в будущем (в 11 частности, я не понимаю, как аргументы макроса 10 разделяются, если мой код есть запятые). #define MY_MACRO(typ, do_stuff) do { \ if(condition){ \ struct typ m = start_stuff(); \ do_stuff; \ end_stuff(); \ } \ }while(0) //usage MY_MACRO(Foo, { m.foo = bar(1,2); m.baz = 17; }); Пока 9 что единственное, ...

Эквиваленты _countof MSVC в других компиляторах?

... оставляемые другими компиляторами, в 1 частности GCC и Clang? Есть ли немакро-формы? ...

Есть ли способ получить имена полей структуры в макросе?

... my_macro!(S); Я хочу получить 3 доступ к именам полей структуры в макросе 2 следующим образом: macro_rules! my_macro { ($t:ty) => {{ let field_names = get_field_names($t); // do somethin ...

Как создать новую строку в макросе cpp?

... и включает новые стро ...

Одноименный макрос с разными аргументами

... но 1 так: #define FI(value) do {l<<value; Doit(l); } while(0) #define FI(value, leve ...

Как повторить какое-то действие в Vim определенное время?

... д несколько раз. Скажем, я хочу 3 прокомментировать 5 строк, я бы использовал I//<Esc> ...

Создание списка строк и списка перечислений из макроса C++

... сделать макрос с переменными 3 аргументами и преобразованием в строку, я 2 получаю сообщение об ошибке, поскольку аргу ...

Макрос __FILE__ показывает полный путь

... Я имею в виду 1 вместо /full/path/to/file.c Понятно to/file.c или f ...

Python-подобные декораторы C++

... d(self, *args, **kwargs): pass Использование 1 макросов, например: DECORATE(decorator_method) int decorated(int a, float b = 0) { ...

Реализовать общий макрос подкачки в C

... x = x - y; } Он отлично работает с целыми числами 6 и числами с плавающей запятой, но я не уверен, есть 5 ли в этом какой-то подвох. Что, если под 4 общим макросом они подразумевают замену 3 указателей, си ...

Может ли макрос Rust создавать новые идентификаторы?

... нкций-установщиков 5 / получателей, имена которых автоматически 4 генерируются на основе общ ...

Могу ли я записывать / воспроизводить макросы в Visual Studio 2012/2013/2015/2017/2019?

... вать 7 и воспроизводить макросы клавиатуры (так 6 же, как временный макрос записи / воспроизведения 5 в Visual Studio 2010)? Например, я обычно 4 использую макрос при преобразовании ко ...

Эквивалент C++ decltype

... же не знаю, возможно 8 это или нет. НАСТОЯЩИЙ СЛУЧАЙ Я разрабатываю инструменты 7 для тестирования ядра Linux на C. Было 6 много версий кастомных ядер из других групп 5 моей компании. По историческим причинам 4 некоторые из них использовали int, другие использовали 3 size_t или ssize_t и т. Д. Теперь, когда я пишу код, я 2 должен поступать так: // int my_func(int a, int b, int c) size_t my_func(int a, int b, int c) // ssize_t my_ ...

Может ли javascript имитировать нажатие кнопки?

... тии 10 кнопки, но это было бы напрасно, если бы 9 они могли вставлять сценарии javascript, которые 8 просто «нажимают» кнопку и продолжают действовать, как 7 обычный пользователь. Под имитацией нажатия 6 кнопки я подразумеваю, что кнопка нажата 5 и форма, в которой кнопка находится, запускается 4 с связанным с ней php-кодом. Логика подсказывает 3 мне, что javascript может это ...

Как реализовать общий макрос на C?

... а func_string. если 3 это int, отправить на func_int Я думаю, что есть решение 2 этой проблемы, поскольку типы перем ...

Что означает #define _POSIX_SOURCE?

... ства дает моей программе использование 5 #define _POSIX_SOURCE в C? Могу ли я получить доступ к большему 4 количеству библиотек ...

Чем расширяется макрос «__cplusplus»?

... cplusplus или мы должны использовать 11 вместо этого #ifdef __cplusplus? Заключение (добавлено позже) Из комментариев и принятого 10 ответа: __cplusplus заменяется числом, представляющим 9 версию стандарта, за исключением предстандартного 8 C++ в начале 90-х годов (который просто 7 расш ...

В чем опасность однократного использования #pragma?

... : #ifndef hopefully_unique_identifier_that_doesnt_hurt_the_code #define hopefully_unique_identifier_that_doesnt_hurt_the_code // some code here #endif Одна проблема, о которой 31 я знаю, с классическим подходом заключается 30 в том, ...

Создание перечисления внутри макроса

... внутри перечисления, проблем нет: macro_rules! build { ($($case:ty),*) => { enum Test { Foo(i32), Bar(i32, i32) } }; } fn main() { build!{ Foo(i32), Bar(i32, i32) }; } Это также 3 работает, если мой макрос принимает только 2 простые поля: macro_rules! build { ($($case:ident),*) => { enum Test { $($case),* } }; ...

#ifdef не работает должным образом с предварительно скомпилированными заголовками

... веденный 12 ниже код работает должным образом. //#define FEATURE_A 1 void function() { // some code #ifndef FEATURE_A // code to be executed when this feature is defined #endif // some code } Может 11 ли кто-нибудь объяснить, почему в первом 10 случае код внутри #ifdef - #endif не выполняется, а 9 во втором - работает? Может ли кто-нибудь 8 сказать мне, какая ...

Есть ли в C++ макрос __CLASS__?

... ласса, подобное макросу __FUNCTION__, который дает ...

Переопределение или изменение значения макроса

... м (так как это 9 может повлиять на исходную функциональность 8 программы). Я просто собираюсь изменить 7 его в одном конкретном состоянии, остальное 6 во всем остальном он остается прежним. Чтобы 5 все знали, я, очевидно, пробовал использовать 4 другое определение макроса со значением 3 (17), которое собираюсь использовать, но 2 б ...

Являются ли шаблоны C++ просто замаскированными макросами?

... мирую на C++ уже несколько лет, довольно 14 часто использовал STL и несколько раз создавал 13 свои собственные классы-шаблоны, чтобы посмотреть, как 12 это делается. Сейчас я пытаюсь глубже интегрировать 11 шаблоны в свой объектно-ориентированный 10 дизайн, и ко мне постоянно возвращается 9 навязчивая мысль: на самом деле это всего 8 лишь макросы... очень хотел. Такое представление 7 о шаблонах помогает ...

Что именно делают охранники C?

... еет защиту 10 включения. Однако меня немного смущает то, что 9 на самом деле делает #define HEADER_FILE. Скажем, я 8 должен был забыть о включении защиты, для 7 меня было бы совершенно законно полностью 6 игнорировать добавление '#define HEADER_FILE ...

Использование #define в C без значения

... ия, например #define COMMAND_SPI() по 1 умолчанию ...

PyBind11 Шаблонный класс многих типов

... ::class_<Array2D<float>>(m, "Array2Dfloat", py::buffer_protocol(), py::dynamic_attr()) .def(py::init<>()) .def(py::init<Array2D<float>::xy_t,Array2D<float>::xy_t,float>()) .def("size", &Array2D<float>::size) .def("width", &Array2D<float>::width) .def("height", &Array2D<float>::height) //... //... Я придумал ...

Как разрешить необязательные конечные запятые в макросах?

... вить к нему 4 запятую: define_enum!(Foo { A, B, }); // ^ Сбой компиляции. Я могу исправить 3 это с помощью: ($Name:ident { $($Variant:ident,)* }) // ^ но затем define_enum!(Foo { A, B }); не работает, Как 2 мне написать макрос для обработки обоих 1 случаев: ...

Какое значение __STDC_VERSION__ для C11?

... тным 13 C, и оттуда вы можете использовать __STDC_VERSION__, чтобы 12 выяснить, какой уровень стандарта вы используете. . Я 11 также знаю, что C90 не имеет значения, в 10 поправке C90 1 было 199401L, а в C99 было 199901L. В последнем 9 черновике C1x, который я написал, он просто 8 обозначен как 201ymmL, и я предполагаю, что в окончательном 7 стандарте ему было придано менее "расплывчатое" значение. Я 6 пред ...

Использование двойных охранников включения в C++

... о и хорошо задокументировано. Если 15 макрос уже определен, весь файл заголовка 14 рассматривается компилятором как «пустой», и 13 двойное включение предотвращается. Достаточно 12 просто. Проблема, которую я не понимаю, заключается 11 в использовании #ifndef __HEADER_A_HPP__ и #endif вокруг #include "header_a.hpp". Коллега сказал 10 мне, что это добавляет второй уровень защиты 9 включений, но я не понимаю, как этот второй 8 слой во ...

Макрос S_ISREG не определен

... и для linux макросов posix S_ISREG, S_ISDIR и т. Д.? Мне нужно это выяснить, потому что я пытаюсь скомпилировать CURL, и он пытается использовать их в Windows Какой включаемый файл я могу использовать для доступа к ним в Windows. Это оскорбительный код /*we ignore file size for char/block devices, sockets etc*/ if(S_ISREG(fileinfo.st_mode)) uploadfilesize= fileinfo.st_size; } и вызывает 5 ошибку error LNK2019: unres ...

% (AdditionalIncludeDirectories) значение

... параметр "Дополнительные 7 каталоги включения". Настройка выглядит 6 так .. \ Project1; % (AdditionalIncludeDirectories) Поймите, что 5 первая часть - это путь, по которому программа 4 будет искать дополн ...

Переносимый макрос параметра UNUSED, используемый в сигнатуре функции для C и C++

... USED(x) UNUSED_ ## x __attribute__((unused)) #elif defined(__LCLINT__) # define UNUSED(x) /*@unused@*/ x #elif defined(__cplusplus) # define UNUSED(x) #else # define UNUSED(x) x #endif Можно ли расширить это 5 действие для других компиляторов? Изменить: для 4 тех, кто не понимает, как работают теги: мне 3 нужно решение как для C, так и для C++. Вот 2 почему этот вопрос помечен как C, так и 1 C++, и поэтому решение только на C++ непри ...

Есть ли способ отобразить список макросов, аналогичный отображению ваших сопоставлений в Vim?

... 10 это возможно, есть ли способ прикрепить 9 какую-либо документацию, которая будет отображаться 8 вместе с макросом, чтобы объяснить, для 7 чего он нужен? У меня есть горстка, которую 6 я использую совсем немного, но с разницей 5 примерно в 6 недель. Было бы неплохо просто 4 быстро перечислить их вместе с комментарием, который 3 сообщает мне, что делает макрос (или даже 2 просто именем, чтобы я был уверен, что использую ...

WRITE_ONCE в списках ядра Linux

... ется в файле 18 семь раз, например static inline void __list_add(struct list_head *new, struct list_head *prev, struct list_head *next) { next->prev = new; new->next = next; new->prev = prev; WRITE_ONCE(prev->next, new); } Я читал, что он используется 17 для предотвращения состояний гонки. У меня 16 два вопроса: 1 / Я думал, что мак ...

Зачем заменять существующее ключевое слово в C/C++ макросом?

... человека 6 искать, что означают такие макросы, что 5 делает код немного сложнее для понимания 4 (по крайней мере, я так это вижу). Почему 3 такая тенденция так распространена? Какова 2 цель замены существующих однословных конструкций 1 ...

Как отменить определение в командной строке с помощью gcc

... ать несколько аргументов в gcc, например 1 -D, но не могу увидеть сообщение «не определено». Спасибо #include <iostream> #define ...

Можно ли использовать оператор if внутри #define?

... #define SUM_A( x, y ) if( x == 0 || y == 0) { 0 } else { ( ( ( x * x ) / ( ( x ) + ( y ) ) ) * ( y ) )} , а затем я вызываю макрос внутри main: float a = 40, b = 10, result; result = SUM_A(a, b); printf("%f", result); Я 5 пробовал использовать скобки вокруг функции 4 if, но ...

c ++: определение функции dllimport запрещено, сборка с помощью Visual Studio 2010

... athFuncs *myMath); TRIALDLL_API double __stdcall MyAdd(MyMathFuncs* myMath, double a, double b); // some other similar stuff #ifdef __cplusplus } #endif #endif И файл triallDLL.cpp: // trialDLL.cpp #include "trialDLL.h" TRIALDLL_API MyMathFuncs* __stdcall new_MyMathFuncs(double offset) { return new MyMathFuncs(of ...

Ошибка при определении строкового макроса с __VA_ARGS__

... format "\n", __VA_ARGS__) ^ Предположительно, он 8 должен преобразовать формат в строковый 7 формат и передать свои переменные аргументы 6 в printf, но пока я не могу обойти эту ошибку. ИЗМЕНИТЬ После 5 отказа от строкового преобразования аргументов 4 и двойного хеширования (##) __VA_ARGS__ у меня появилась ...

Саморазвертывающийся цикл макросов в C / C++

... do_stuff(); } на: #define INNER_LOOP_COUNT 4 LOOP_N_TIMES(INNER_LOOP_COUNT, do_stuff();) И он разворачивается 6 до: do_stuff(); do_stuff(); do_stuff(); do_stuff(); Поскольку препроцессор C по-прежнему 5 остается для меня загадкой, я не знаю, как 4 это сделать, но я знаю, что это должно быть 3 возможно, потому что Boost, похоже, имеет 2 макрос BOOST_PP_REPEAT. К сожалению, я не могу использовать 1 B ...

Документирование макросов в C++ с помощью Doxygen

... ust call this macro to register their messages... /*! ...lest they be forced to type all sorts of boring and error-prone boiler plate code. blah blah blah... More specific documentation and explanation... */ #define REGISTER_MESSAGE_TYPE(MSGTYPE) \ do_some(MSGTYPE); \ seriously(); \ crazy_stuff(MSGTYPE); ...

При вставке сформирован недопустимый токен обработки "."

... \ return 0; \ (PolicyObject1 и PolicyObject2 - два 11 статических объекта.) Теперь при использовании 10 макроса, например DELEGATE_FUNC (ProcessPreCreate, 1, null_ptr); Он 9 отлично компилируется в VS 2015, но выдает 8 ошибку с LLVM «При вставке сформирован недопустимый 7 токен обработки '.ProcessPreC ...

Многострочный макрос C: do / while (0) vs scope block

... ных 4 макросов C, заключенных в цикл do / while 3 (0), например: #define FOO \ do { \ do_stuff_here \ do_more_stuff \ } while (0) Каковы преимущества (если 2 есть) такого написания кода по сравнению 1 с использованием базового блока: #define F ...

Цель использования UINT64_C?

... е повышения: const boost::uint64_t m = UINT64_C(0xc6a4a7935bd1e995); Интересно, для 7 чего здесь используется МАКРОС? Все, что 6 он делает, это добавляет ULL к предоставленной 5 константе. Я предполагаю, ч ...

Реальное использование X-Macros

... ое реальное использование 2 X-Macros вы видели? ...

Макрос и функция с тем же именем

... c(int a, int b) { do_blah(a,b); } int main() { int x = 6, y = 7; myfunc(x,y); return 0; } Я хочу, чтобы препроцессор 14 расширял функцию myfunc только при вызове. Требуемый 13 код после предварительной обработки выглядит 12 так: void myfunc(int a, int b) { do_blah(a,b); } int main() { int x = 6, y = 7; myfunc(do_a(x),do_b(y)); return 0; } Проблема в том, что определе ...