Проверьте, объявлена ​​ли функция с препроцессором C?

Если вы используете sqlite для тестирования, вам понадобится php sqlite pdo drive.

Для Ubuntu 14.04

sudo apt-get install php5-sqlite
sudo service apache2 restart

В ubuntu 16.04 нет php5-sqlite

sudo apt-get install php7.0-sqlite
sudo service apache2 restart
16
задан Brian Tompsett - 汤莱恩 18 February 2016 в 11:54
поделиться

4 ответа

Нет. Препроцессор запускается перед компилятором C, а компилятор C обрабатывает объявления функций. Препроцессор предназначен только для обработки текста.

Однако большинство файлов заголовков содержат защитные макросы, такие как _STDIO_H_ , которые вы можете проверить на этапе препроцессора. Однако это решение непереносимо, поскольку имена макросов защиты включения не стандартизированы.

22
ответ дан 30 November 2019 в 21:03
поделиться

Поскольку препроцессор не знает языка C / C ++ (на самом деле он выполняет только замену текста), я бы предположил, что это невозможно. почему ты хочешь сделать это? Может быть, есть другой способ.

0
ответ дан 30 November 2019 в 21:03
поделиться

Препроцессор - это простая программа, которая почти ничего не знает о базовом языке. Он не может сказать, была ли объявлена ​​функция. Даже если бы это было возможно, функция может быть определена в другой библиотеке, и символ будет разрешен во время компоновки, поэтому препроцессор не может помочь в этом отношении.

1
ответ дан 30 November 2019 в 21:03
поделиться

Если вы посмотрите на такие инструменты, как autoconf, вы увидите, что они проходят множество тестов, чтобы определить, что на компьютере есть, а что нет, для правильной компиляции, а затем они устанавливают правильные #DEFINES.

Возможно, вам захочется взглянуть на эту модель и этот инструмент, если вы пользуетесь какой-то разновидностью unix, поскольку то, что вы хотите сделать, будет невозможным, как, несомненно, указывают другие.

5
ответ дан 30 November 2019 в 21:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: