Вопросы по теме 'c-preprocessor'
Как мне увидеть исходный файл C / C ++ после предварительной обработки в Visual Studio?
Допустим, у меня есть исходный файл со множеством директив препроцессора. Можно ли увидеть, как это будет выглядеть после того, как препроцессор с ним покончит?
96939 просмотров
schedule
07.01.2024
C # определить макросы
Вот что у меня есть, и мне интересно, как это работает и что на самом деле делает.
#define NUM 5
#define FTIMES(x)(x*5)
int main(void) {
int j = 1;
printf("%d %d\n", FTIMES(j+5), FTIMES((j+5)));
}
Он производит два целых числа: 26 и...
905 просмотров
schedule
11.03.2022
Есть ли лекарство от синевы препроцессора?
Я знаю, что могу запустить препроцессор, чтобы он выдал результат с параметром -E в моих конкретных обстоятельствах. Для сгенерированного кода этот вывод препроцессора убийственен. Например, у меня есть приложение 4gl, и Informix преобразует его в...
2811 просмотров
schedule
15.01.2023
Как обеспечить соблюдение только одного определения?
Учитывая проект C , который должен поддерживать несколько сред, как мне использовать препроцессор, чтобы обеспечить определение только одной среды?
Я уже умею:
#if defined PROJA
(blah blah blah)
#elif defined PROJB
(etc)...
226 просмотров
schedule
02.06.2023
Каково возможное использование #define для if (false) {} else для?
В другом вопросе я только что заметил эту маленькую жемчужину мудрости C :
#define for if (false) {} else for
что заставило MSVC выдать предупреждения о «постоянном выражении» для вполне допустимого оператора:
for (int i = 0; i <= 10;...
8110 просмотров
schedule
09.05.2022
Макрос C: превратить число в строку
У меня есть таблица, определяющая внешний вид символов на дисплее с разрешением 5x7 точек. Что-то типа:
extern UINT8 symbols[][5] = {
{0x0,0x0,0x0,0x0,0x0},
{0x0,0x0,0x5F,0x0,0x0},
{0x0,0x7,0x0,0x7,0x0},...
8258 просмотров
schedule
01.03.2023
Самые полезные пользовательские C-макросы (в GCC, также C99)?
Какой макрос C , по вашему мнению, наиболее полезен? Я нашел следующий, который использую для векторной арифметики в C :
#define v3_op_v3(x, op, y, z) {z[0]=x[0] op y[0]; \
z[1]=x[1] op y[1]; \...
16214 просмотров
schedule
28.05.2024
#определить в Java
Я начинаю программировать на Java, и мне интересно, существует ли эквивалент C++ #define .
Быстрый поиск в google говорит, что это не так, но может ли кто-нибудь сказать мне, существует ли что-то подобное в Java? Я пытаюсь сделать свой код более...
196296 просмотров
schedule
12.08.2023
Всегда ли комментарии обрабатываются до препроцессора?
/*
#define FOO
*/
#ifdef FOO
#define BAR "pirate"
#else
#define BAR "ninja"
#endif
int main() { printf(BAR); getchar(); }
В этом коде FOO не определен (Visual Studio 2008). Я предполагаю, что сначала обрабатываются комментарии, затем...
2266 просмотров
schedule
28.10.2023
MSBuild.exe не принимает ни /p:DefineConstants, ни /p:PreprocessorDefinitions
Я прочитал довольно много статей о переполнении стека, которые отвечали на вопрос «Как мне передать определения препроцессора компилятору из командной строки MSBuild», и все они ответили с некоторыми вариантами:
MSBuild.exe...
24017 просмотров
schedule
23.03.2023
Рекомендовать внешний интерфейс C, который сохраняет директивы препроцессора
Я хотел бы начать проект, который включает преобразование кода C , но я хотел бы включить директивы препроцессора. Я не хочу изобретать велосипед, написав свой собственный синтаксический анализатор C , поэтому кто-нибудь знает интерфейс, который...
1108 просмотров
schedule
19.12.2023
Должно ли определение переменной находиться в заголовочных файлах?
Мои базовые знания C и процесса компиляции в последнее время заржавели. Я пытался найти ответ на следующий вопрос, но не смог связать основы компиляции, компоновки и предварительной обработки. Быстрый поиск в гугле тоже не особо помог. Итак, я...
31914 просмотров
schedule
15.09.2022
Добавление аргументов по умолчанию в вариативный макрос
Можно ли добавить аргументы по умолчанию перед переменным аргументом в вариативном макросе? например, у меня есть версия макроса что-то вроде
#define MACRO(arg1, ...) func(arg1, ##__VA_ARGS__)
Я хотел бы добавить еще 2 аргумента по умолчанию...
7038 просмотров
schedule
22.12.2022
Статические, определяемые и константные в C
Я читал, что статические переменные используются внутри функции, когда вы не хотите, чтобы значение переменной изменялось/инициализировалось каждый раз при вызове функции. Но как насчет определения статической переменной в основной программе перед...
25001 просмотров
schedule
19.12.2022
Как именно работает трюк с двойной строкой?
По крайней мере, некоторые препроцессоры C позволяют вам преобразовать значение макроса в строку, а не его имя, передав его через один функционально-подобный макрос другому, который преобразовывает его в строку:
#define STR1(x) #x
#define...
18931 просмотров
schedule
22.02.2022
Почему при повторном сканировании замены аргументов не заменяются?
Рассмотрим следующие определения макросов и их вызовы:
#define x x[0]
#define y(arg) arg
y(x)
Этот вызов расширяется до x[0] (проверено на Visual C ++ 2010, g ++ 4.1, mcpp 2.7.2 и Wave).
Почему? В частности, почему он не расширяется до...
840 просмотров
schedule
11.03.2023
Проблемы конкатенации с макросом отладочной печати в gcc
Чтобы полностью отключить вывод отладки в c-source, я обычно определяю следующий ПРОСТОЙ макрос #1
#define dprintf(args)
Чтобы включить отладочный вывод, я альтернативно определяю макрос № 2
#define dprintf(args) printk##args...
533 просмотров
schedule
03.12.2022
Реализация конкатенации строковых литералов в C и C++
Насколько я знаю, этот вопрос в равной степени относится к C и C++ .
Шаг 6 «этапов перевода», указанных в стандарте C (5.1.1.2 в проекте стандарта C99), гласит, что смежные строковые литералы должны быть объединены в один литерал. Т.е....
2670 просмотров
schedule
21.12.2023
В чем причина того, что #pragma Once находится внутри защитных ограждений заголовка?
Только что видел это внутри <boost/asio.hpp>
#ifndef BOOST_ASIO_HPP
#define BOOST_ASIO_HPP
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
/// ....
#endif...
7349 просмотров
schedule
01.07.2023
C Функция проверки ошибок
Для моего класса системного программирования мы много программируем на C и должны проверять ошибки большинства функций, поскольку в настоящее время мы учимся программировать с помощью pthreads.
Причина, по которой я говорю, что это не настоящая...
2517 просмотров
schedule
11.05.2023