Я не верю, что у gcc такое предупреждение. Я просто запустил info gcc
(для gcc 4.5.2) и искал "восьмеричный". Было только два случая, ни один из них не полезен.
Я не знаю о компиляторе Microsoft.
Вы можете искать в ваших исходных файлах регулярное выражение, которое соответствует восьмеричным константам. Если у вас есть grep
, что-то вроде этого должно помочь (предупреждение: я не проверял это):
grep '\<0[0-7][0-7]*' foo.c
Это соответствует 0, за которым следуют одна или несколько цифр в диапазоне 0,7 в начале слова. Он намеренно не соответствует 0
, что является восьмеричной константой, но, вероятно, не той, о которой вы беспокоитесь. Это может дать вам несколько ложных срабатываний, например, в строковых литералах и комментариях. Он также будет соответствовать символьной константе, такой как '\007'
, которая является восьмеричной, но не такой подверженной ошибкам, как восьмеричная целочисленная константа.