В настоящее время я практикую единичный тест с GTest и заметил, что я не объявлял все функции, записанные в целевом исходном коде (target.c), в его заголовок (target.h). Поскольку я не тестировал эти незаявленные функции, я не мог заметить до сих пор.Что произойдет, если я не объявлю все функции в заголовке?
Теперь, кажется, что эти нераскрытые заголовки функции работают как «частные» функции, поскольку они не могут быть вызваны из тестового кода (который включает заголовок целевого исходного кода).
Могу ли я считать это способом объявления частной функции или я должен знать о чем-то еще для безопасности?
Если функции должны использоваться вне исходного файла, определяющего их, они должны быть объявлены в заголовке, а заголовок должен использоваться там, где используются функции, а также где они определены - это обеспечивает согласованность. Если функции не используются вне исходного файла, определяющего их, они должны быть объявлены 'static'. У вас должны быть настроены параметры компиляции, чтобы, если функция не объявлена до ее использования, вы получаете ошибку компиляции. Аналогичным образом, если вы определяете не-статическую функцию перед ее объявлением, вы должны получить ошибку компиляции. Все остальное вас ждет. –