Можно ли проверить сгенерированный двоичный файл, чтобы знать, окончательное значение MAX_NUM_REL?
Нет, по крайней мере, не напрямую.MAX_NUM_REL
- макрос, а не переменная. Препроцессор заменяет имя макроса своим расширением (в зависимости от того, что это такое) во всем мире, что он отображается как токен предварительной обработки в рамках определения макроса. Если он появляется где угодно, где он не является полным токеном предварительной обработки, это не может быть как имя объекта.
Если случилось быть переменной файл-Scope где-то в двоичном, который инициализируется со значением MAX_NUM_REL
, такие как ...
int num_rel = MAX_NUM_REL;
... то вы можете найти начальное значение этот символ в двоичном выражении и вывести выбранное значение MAX_NUM_REL
.
Возможно также использовать препроцессор, чтобы сформулировать обоснованное предположение о том, какое определение используется. Предположим, что файл, содержащий эти определения, - mysource.c
. Если вы можете вызвать препроцессор все те же параметры, которые используются для фактической компиляции, то предварительная обработка этого источника ...
include "mysource.c"
int the_value = MAX_NUM_REL;
... с теми же параметрами * будет (возможно) производить кучу предварительно обработанного источника C оканчивающийся либо
int the_value = 5;
или
int the_value = 10;
Знайте, что это может не дать вам й правильный ответ, если MAX_NUM_REL
переопределяется где-то в источнике, но это то, что вы можете проверить достаточно легко.
Как вы используете только препроцессор, зависит от вашей системы. Если вы используете gcc
, вы можете использовать gcc -E
.
* Возможно, вам понадобится дополнительная опция, чтобы гарантировать, что mysource.c
находится в пути поиска.
#define сам по себе не дает прямой трассировки в двоичный файл. Определения заменяются соответствующими значениями (10 или 5), где они отображаются в коде во время компиляции. –
Эти символы уходят еще до начала компиляции на фазе предварительной обработки. –
Вы _might_ найдете это в отладочных символах, в зависимости от вашей среды и настроек сборки. – Olaf