Имя функции не отображается за пределами модуля перевода (исходного файла), в котором она объявлена, и не будет конфликтовать с другой функцией foo
в другом исходном файле.
В общем, функции, вероятно, должны быть объявлены static
, если у вас нет особой необходимости вызывать его из другого исходного файла.
(Обратите внимание, что только имя невидимо. Его по-прежнему можно вызывать из любой точки программы через указатель.)