Вопросы по теме 'c-preprocessor'
Включить только определенные библиотеки в операционной системе
При написании приложения, которое нужно скомпилировать на Mac, Linux и Windows, как лучше всего управлять различными библиотеками, которые необходимо включить в различные операционные системы. Например, для использования перенасыщенного набора...
418 просмотров
schedule
04.04.2022
Как проверить ОС с помощью директивы препроцессора?
Мне нужен мой код, чтобы делать разные вещи в зависимости от операционной системы, в которой он компилируется. Я ищу что-то вроде этого:
#ifdef OSisWindows
// do Windows-specific stuff
#else
// do Unix-specific stuff
#endif
Есть ли способ...
163767 просмотров
schedule
15.05.2022
Какие применения оператора препроцессора ## и какие подводные камни следует учитывать?
Как упоминалось во многих из моих предыдущих вопросов, я работаю через K&R, а сейчас занимаюсь препроцессором. Одна из наиболее интересных вещей, о которой я никогда раньше не знал из своих предыдущих попыток изучить C, - это оператор препроцессора...
70913 просмотров
schedule
01.12.2022
Преобразование токена препроцессора в строку
Я ищу способ преобразовать токен препроцессора в строку.
В частности, у меня где-то есть:
#define MAX_LEN 16
и я хочу использовать его для предотвращения переполнения буфера:
char val[MAX_LEN+1]; // room for \0
sscanf(buf,...
82116 просмотров
schedule
22.02.2024
Как лучше всего создавать варианты одного и того же приложения C/C++?
У меня есть три тесно связанных приложения, созданных из одного и того же исходного кода, скажем, APP_A, APP_B и APP_C. APP_C является надмножеством APP_B, которое, в свою очередь, является надмножеством APP_A.
До сих пор я использовал определение...
1336 просмотров
schedule
23.02.2022
Какой хороший справочник по шаблонам использования X-макросов в C (или, возможно, C ++)?
Основное определение, пример и несколько ссылок для " X-Macros ": приведено в этой статье в Википедии о препроцессоре C :
X-Macro - это файл заголовка (обычно с расширением «.def» вместо традиционного «.h»), который содержит список похожих...
6430 просмотров
schedule
13.10.2023
Запретить препроцессору C выполнять определенную макроподстановку
Как я могу сказать препроцессору не заменять конкретный макрос?
Конкретная проблема заключается в следующем: файлы заголовков Windows определяют макрос GetMessage.
Мои заголовочные файлы C++ с моим API имеют метод GetMessage. Я не хочу...
3995 просмотров
schedule
08.07.2022
Надлежащая практика программирования для определений макросов (#define) в C
Например, никогда не определяйте такой макрос:
#define DANGER 60 + 2
Это может быть потенциально опасно, когда мы выполняем такую операцию:
int wrong_value = DANGER * 2; // Expecting 124
Вместо этого определите так, потому что вы...
24682 просмотров
schedule
19.01.2023
Замены препроцессора C
Я заинтересован в использовании чего-то другого, кроме препроцессора C , для предварительной обработки исходного кода C и Objective-C. Есть ли хорошие альтернативы?
Примером может быть что-то, что позволяет уйти в фрагмент кода Python или Perl...
13083 просмотров
schedule
15.07.2022
Целочисленное значение изменяется при выходе из блока препроцессора
У меня есть кусок кода, где кажется, что переменная изменяется в конце блока кода препроцессора.
int initialKeyCount;
#if(DEBUG)
// int initialKeyCount = _root.CountAllKeys();
initialKeyCount = 20000;
#endif
currNode =...
162 просмотров
schedule
22.03.2023
Как я могу получить текущее значение DateTime из прекомпилятора в C #?
В C # 3.0 у меня есть свойство, которое должно содержать версию класса. Номер версии - это просто дата и время компиляции. Прямо сейчас у меня есть следующий код:
public DateTime Version
{
get { return DateTime.UtcNow; }
}
Очевидно, это...
3621 просмотров
schedule
11.05.2022
Когда вы можете опустить расширение файла в директиве #include?
Я играю с gmock и заметил, что он содержит эту строку:
#include <tuple>
Я ожидал tuple.h .
Когда можно исключить расширение и придает ли это директиве другое значение?
13382 просмотров
schedule
29.04.2022
Удалять части #ifdef DEBUG для выпуска или нет?
Когда вы публикуете исходный код для просмотра кем-то еще, когда стиль кодирования не определен четко (без каламбура), удаляете ли вы части #ifdef DEBUG?
(это те части, которые компилируются только при определении DEBUG)
Если я удалю его, код...
2788 просмотров
schedule
22.03.2022
Как я могу удалить дублирование между этими макросами C?
У меня есть пара следующих макросов препроцессора C для создания тестовых функций:
// Defines a test function in the active suite
#define test(name)\
void test_##name();\
SuiteAppender test_##name##_appender(TestSuite::active(),...
166 просмотров
schedule
09.03.2023
Какие макросы препроцессора C уже определены в gcc?
В gcc , как я могу проверить, какие определения препроцессора C используются во время компиляции программы C, в частности, какие стандартные или специфичные для платформы определения макросов определены?
3641 просмотров
schedule
19.04.2022
Расширение макроса препроцессора в другую директиву препроцессора
Сначала я думал, что мне это нужно, но в конце концов я избегал этого. Однако мое любопытство (и жажда знаний, кхм) заставляют меня спросить:
Может ли макрос препроцессора, например, в
#include "MyClass.h"...
9209 просмотров
schedule
19.07.2023
Препроцессор C сначала удаляет комментарии или раскрывает макросы?
Рассмотрим эту (ужасную, ужасную, плохую, очень плохую) структуру кода:
#define foo(x) // commented out debugging code
// Misformatted to not obscure the point
if (a)
foo(a);
bar(a);
Я видел, как препроцессоры двух компиляторов генерируют...
28725 просмотров
schedule
11.03.2023
Почему я не могу использовать sizeof в состоянии препроцессора?
Я понимаю, что sizeof - это оператор, который вычисляется во время компиляции до целочисленной константы. Но, похоже, его нельзя использовать в директиве препроцессора #if, например:
#if 4 == sizeof(int)
typedef int Int32;
#endif...
5729 просмотров
schedule
27.07.2023
#define макрос для отладочной печати на C?
Попытка создать макрос, который можно использовать для печати отладочных сообщений, когда определена DEBUG, например, следующий псевдокод:
#define DEBUG 1
#define debug_print(args ...) if (DEBUG) fprintf(stderr, args)
Как это достигается с...
221290 просмотров
schedule
22.08.2023
Макросы как аргументы директив препроцессора
Столкнувшись с вопросом, можно ли выбрать #include s в препроцессоре, я сразу подумал невозможно . .. Только чтобы позже узнать, что это действительно возможно, и вам нужно только следить за расширения аргументов (о которых может позаботиться,...
1498 просмотров
schedule
24.07.2023