Я поддерживаю программу с открытым исходным кодом, которая собирается с помощью autoconf.
Сейчас у меня проблема с некоторыми моими пользователями. Они используют предварительно распределенную виртуальную машину из организации, в которой есть неправильный прототип strchr. Их прототип:
char *strchr(char *,int c);
когда, конечно, мы знаем, что это должно быть:
char *strchr(const char *s,int c);
(который сам по себе не работает, так как вывод должен быть действительно const char *
, но тогда вы не сможете изменить то, что он дает вам, если вы передадите char *
, а не const char *
, но я отступлю. 1012 *
Мой вопрос: есть ли способ создать макрос autoconf, который определяет, какой прототип используется, и использует его соответствующим образом? Я бы не хотел, чтобы мой код говорил:
v = strchr((char *)s,c);
Спасибо!