определение статической функции в заголовке

0

В заголовке xxx.h:

static int yyy();
int yyy()
{
    return 0;
}

Если я включаю xxx.h в файл cpp, yyy() все еще статическая функция?

Теги:
static

1 ответ

3
Лучший ответ

Да, все еще статично. Каждая единица компиляции (файл.cpp) будет иметь свою собственную версию yyy.

Компилятор не видит файлы заголовков. Они ушли на стадии предварительной обработки, где каждый #include заменяется текстом содержимого файла этого #include, и компилятор увидит только один очень длинный поток символов.

  • 0
    Я попробовал простую проверку. Если я удалю определение yyy (), даже подпись будет отличаться от его объявления, компилятор все равно выдаст мне сообщение об ошибке «неопределенная функция». Таким образом, можно подтвердить, что компилятор использует определение yyy (). Я прав?
  • 0
    @ naive231 Я не понимаю твою проблему. Пожалуйста, предоставьте больше деталей. Но опишите проблему в другом вопросе StackOverflow.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню