Как найти путь включения для string.h в xcode - PullRequest
0 голосов
/ 22 декабря 2010

Мне надоело видеть предупреждение

"Декларация 'index' скрывает глобальную декларацию"

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

Кто-нибудь знает способ узнать, как (по какому пути) включается string.h?Можно ли предотвратить его включение?

Ответы [ 2 ]

2 голосов
/ 22 декабря 2010

Функция index фактически объявлена ​​в /usr/include/strings.h и помечена как удаленная, начиная с выпуска 7. POSIX. Вы можете скрыть ее объявление, установив соответствующую версию POSIX с флагом компилятора -D_POSIX_C_SOURCE=200809.Это также скроет другие функции, которые устарели в выпуске 7, например bcopy и bzero.

0 голосов
/ 22 декабря 2010

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

Лично я бы просто отключил предупреждение и вручную удостоверился, что никакие переменные, функции и т. Д. Не названы так, как то, что используется.

...