Можно ли изменить размер буфера, используемого в библиотеке C во время компиляции? - PullRequest
1 голос
/ 20 ноября 2019

Итак, я использую библиотеку для чтения последовательных данных. У меня есть исходный код библиотеки, и он показывает, что размер последовательных данных примерно такой:

SOMETYPE ScopeArray[SCOPE_SIZE];

Где SCOPE_SIZE определяется пользовательским флагом компилятора во время компиляции. Теперь мой вопрос: если я использую библиотеку, а не исходный код, могу ли я изменить значение SCOPE_SIZE, перекомпилировав свое приложение, а не библиотеку?

Если этот вопрос не имеет смысла, пожалуйста,дайте мне знать, и я сделаю все возможное, чтобы объяснить. Спасибо!

Ответы [ 2 ]

1 голос
/ 20 ноября 2019

Скомпилированный файл - это данные определенного фиксированного формата. Если вы знаете формат скомпилированных файлов, вы можете изменить их, но это может быть сложно и подвержено ошибкам, и на самом деле не имеет ничего общего с C. Это не то, что вы можете сделать, отредактировав исходный код Cкод.

0 голосов
/ 20 ноября 2019

Ответ - нет.

Во время предварительной обработки (перед компиляцией, когда объектный файл или библиотека созданы) обрабатываются все макросы, и их невозможно изменить.

Существуетбольшая ветка под этим вопросом о процессе компиляции и компоновки: Как работает процесс компиляции / компоновки?

...