0
ответов

Есть ли веская причина для того, чтобы всегда заключать определение в круглые скобки в C?

Очевидно, бывают случаи, когда операторы #define должны иметь круглые скобки, например: #define WIDTH 80 + 20 int a = WIDTH * 2; // ожидаем a == 200, но a == 120 Так что я всегда заключаю в скобки, даже когда это просто ...
вопрос задан: 17 April 2019 02:06
0
ответов

Почему все файлы C, написанные моим лектором, начинаются с одного # в первой строке?

Я просматриваю некоторые примечания к курсу Си, и каждый исходный файл программы Си начинается с единственного знака # в первой строке программы. Тогда есть пустые строки, и после этого другого материала, сопровождаемого ...
вопрос задан: 10 April 2019 05:01
0
ответов

Использование препроцессора для определения указателей

В моей программе я выделяю пять матриц NxN, используя одно распределение. Каждый сегмент двойных чисел NxN рассматривается как отдельная матрица. Когда я впервые написал код, я определил указатели для каждой матрицы следующим образом. ...
вопрос задан: 10 March 2019 02:56
0
ответов

Why use #define instead of a variable

What is the point of #define in C++? I've only seen examples where it's used in place of a "magic number" but I don't see the point in just giving that value to a variable instead.
вопрос задан: 28 March 2018 02:30
0
ответов

Конкатенация int со строкой с помощью препроцессора C

Я пытаюсь понять, как я могу конкатенировать #defin'd int со строкой #define'd с помощью препроцессора C. Мой компилятор - GCC 4.1 для CentOS 5. Решение также должно работать для MinGW. Я хотел бы ...
вопрос задан: 27 February 2018 19:31
0
ответов

Трюк с вариативным макросом

Какой трюк для создания вариативного макроса FOO (a1, a2, a3, ..., an), который расширяется до FOOn ( a1, a2, a3, ..., an) для значений n в любом предварительно выбранном ограниченном диапазоне, который вы выберете? То есть, FOO (a) ...
вопрос задан: 15 January 2018 04:39
0
ответов

Включение файла заголовка из другого каталога

У меня есть основной каталог A с двумя подкаталогами B и C. Каталог B содержит структуры файла заголовка.c: #ifndef __STRUCTURES_H #define __STRUCTURES_H {{ 1}} typedef struct __stud_ent __ {char name [...
вопрос задан: 26 December 2017 20:59
0
ответов

Макрос против функции в C

Я всегда видел примеры и случаи, когда использование макроса лучше, чем использование функции. Может ли кто-нибудь объяснить мне на примере недостаток макроса по сравнению с функцией?
вопрос задан: 14 December 2017 01:29
0
ответов

Печатать значения макросов, не зная количества макросов

У меня есть код, который включает в себя сгенерированный файл (я не знаю заранее его содержимое), есть только соглашение, на котором я и мои пользователи договорились о том, как создать этот файл, чтобы я мог его использовать. Этот файл ...
вопрос задан: 23 November 2017 10:18
0
ответов

Может ли gcc выводить код C после предварительной обработки?

Я использую библиотеку с открытым исходным кодом, которая, кажется, имеет множество директив предварительной обработки для поддержки многих языков, кроме C. Я могу изучить, что делает библиотека. Я хотел бы увидеть код C ...
вопрос задан: 21 September 2017 05:30
0
ответов

Определение порядка байтов

В настоящее время я пытаюсь создать исходный код C, который правильно обрабатывает ввод-вывод независимо от порядка байтов целевой системы. Я выбрал "little endian" в качестве соглашения ввода-вывода, что означает, что для большого ...
вопрос задан: 18 July 2017 22:38
0
ответов

Тест на равенство препроцессоров, это стандарт?

Я предусмотрел один из них в настройках проекта TESTING = HOST TESTING = TARGET TESTING вообще не определена Моя проблема с последним. Кажется, что вместо #if TESTING == HOST #error ...
вопрос задан: 31 May 2017 06:55
0
ответов

Зачем использовать do {} while (0) в определении макроса? [дубликат]

Возможный дубликат: Почему иногда в макросах C / C ++ используются бессмысленные операторы do / while и if / else? Я встретил код, как показано ниже: #define ev_io_init (ev, cb, fd, events) \ do {\ ev_init ((ev), (cb)) ...
вопрос задан: 23 May 2017 12:34
0
ответов

Как сделать запятую внутри фигурных скобок внутри аргумента макроса, если круглые скобки вызывают синтаксическую ошибку?

Я определил несколько макросов, которые упрощают определение массива структур, но я не могу найти способ использовать их без ошибок. Вот макросы (и несколько примеров структур для ...
вопрос задан: 23 May 2017 12:33
0
ответов

Вставка токенов препроцессора в оператор _Pragma в GCC

Я пытаюсь сделать что-то похожее на другой вопрос, а именно, условно включить прагмы OpenMP в мою программу. Однако я хочу пойти на шаг дальше и избежать того, чтобы пользователь указывал omp ...
вопрос задан: 23 May 2017 12:33
0
ответов

Создание макроса с использованием __LINE __для разных имен переменных [дублировать]

Возможный дубликат :Создание макроса C с ##и конкатенацией токенов LINE (с макросом позиционирования )Я пытаюсь использовать макрос __LINE __для создания разных имен переменных. У меня прицел...
вопрос задан: 23 May 2017 12:33
0
ответов

C Macro - Dynamic #include

I'm trying to figure out how to build a variable string for the #include statement using GCC. The idea is that for each source module I have written, I want to include as a header, a dynamically ...
вопрос задан: 23 May 2017 12:33
0
ответов

Удаление списка параметров из f (list) с помощью препроцессора

Мне кажется, что я увидел что-то странное в библиотеке ускорения, и в итоге это именно то, что я пытаюсь сделать сейчас. Но не могу найти ... Я хочу создать макрос, который берет ...
вопрос задан: 23 May 2017 12:31
0
ответов

Функция C, которая вычисляет общий размер аргументов

В настоящее время я пытаюсь вычислить общий размер аргументов, переданных в функцию, в байтах. Теоретически можно просто записать sizeof (x) для каждого аргумента. Однако это огромная трата ...
вопрос задан: 23 May 2017 12:31
0
ответов

В чем разница между #define и const? [duplicate]

Возможные дубликаты: зачем кому-то использовать #define для определения констант? разница между макросом и константой в C ++ C ++ - enum vs. const vs. #define В чем разница между использованием # ...
вопрос задан: 23 May 2017 12:25
0
ответов

Макрос общей длины массива для C? [дубликат]

Я видел несколько плавающих макросов для длины массива: Из этого вопроса: #define length (array) (sizeof (array) / sizeof (* (array))) #define ARRAY_LENGTH (array) (sizeof ((array)) / sizeof ((array) [0])) ...
вопрос задан: 23 May 2017 12:25
0
ответов

Порядок оценки макросов [дубликат]

Возможный дубликат: # и ## в макросах, почему вывод второго printf равен f (1,2) в каком порядке выполняется оценка макроса? #include # определить f (a, b) a ## b #define g (a) #a # ...
вопрос задан: 23 May 2017 12:24
0
ответов

Препроцессор GCC [дубликат]

Возможный дубликат: запуск препроцессора GCC Есть ли параметр GCC, чтобы препроцессор GCC генерировал исходный код C, но отфильтровывал ненужные исходный код? Например, файл C имеет #define ...
вопрос задан: 23 May 2017 12:18
0
ответов

Сохранение определений препроцессора [дубликат]

Возможный дубликат: Могу ли я переопределить макрос C ++, а затем определить его обратно? Скажем, у меня есть код, в котором для переменной используется имя BLAH. Предположим, BLAH является общим определением препроцессора во многих стандартах ...
вопрос задан: 23 May 2017 12:18
0
ответов

Макрос препроцессора C для возврата строки, повторяющейся определенное количество раз

Знает ли кто-нибудь о какой-либо магии препроцессора C99, которая позволяет создавать строку, состоящую из другой строки, повторяющейся N раз? Например. STRREP ("% s", 3) становится "% s% s% s" после предварительной обработки. ...
вопрос задан: 23 May 2017 12:17
0
ответов

Может ли Visual Studio автоматически устанавливать отступы/форматировать директивы предварительной обработки? [дубликат]

Возможный дубликат: как принудительно сделать отступ в условных директивах С#? Скажем, я хочу ввести это в Visual Studio: class Program { private const Byte NUM_THREADS = #if ...
вопрос задан: 23 May 2017 12:10
0
ответов

директивы препроцессора внутри определения? [дубликат]

Возможный дубликат: препроцессор C: использование #if внутри #define? Есть ли какой-нибудь трюк, чтобы директивы препроцессора были внутри rhs определения? Проблема в том, что препроцессор складывает все правая части в одну длинную ...
вопрос задан: 23 May 2017 12:07
0
ответов

#define vs. enums для адресации периферийных устройств

Я должен программировать периферийные регистры в микроконтроллере на базе ARM9. Например, для USART я сохраняю соответствующие адреса памяти в enum: enum USART {US_BASE = (int) 0xFFFC4000, ...
вопрос задан: 23 May 2017 12:00
0
ответов

Как объединить строки с точками в препроцессоре C?

Я прочитал следующий вопрос, и ответ кажется достаточно ясным:Как дважды объединить препроцессор C и расширить макрос, как в «arg##_##MACRO»? Но что, если VARIABLE имеет...
вопрос задан: 23 May 2017 12:00
0
ответов

Дурачество препроцессора (преобразование #include)

Примечание: этот вопрос не имеет ничего общего с OpenCL как таковым ... проверьте последний абзац сжатая формулировка моего вопроса. Но чтобы предоставить некоторую предысторию: я пишу код на C ++, который использует ...
вопрос задан: 23 May 2017 11:58