Это глобальная функция?Добавьте « static », если оно используется только в текущем файле.
Возможная причина указана ниже:
нет предыдущего прототипа для `foo '
Это означает, что GCC нашел глобальное определение функции, не увидев прототипа для функции.Если функция используется более чем в одном файле, в заголовочном файле должен быть прототип для нее.Это предохраняет функции и их использование от синхронизации
Если функция используется только в этом файле, сделайте ее статической, чтобы гарантировать, что она никогда не будет использоваться вне этого файла и документ, что она является локальной функцией