Stati c функции в заголовочных файлах в C ++ - PullRequest
1 голос
/ 18 апреля 2020

Я знаю, что когда мы создаем функцию "stati c", ее область действия - весь файл, т. Е. Она может использоваться где угодно в этом конкретном файле, и мы используем ее, чтобы ограничить область действия функции конкретный файл. Что произойдет, если мы определим заголовочный файл, в котором определены некоторые функции, все stati c? Сможем ли мы получить доступ к этим функциям, если мы включим этот заголовочный файл в какой-то другой файл?

1 Ответ

6 голосов
/ 18 апреля 2020

Когда вы включаете заголовок, препроцессор заменит директиву #include содержимым файла. После этого применяются все правила static. То есть, если вы включите заголовок с функциями stati c в некоторые блоки компиляции (.cpp файлы), каждый блок компиляции получит свою собственную частную копию этих функций stati c, которая будет доступна только из этого блока компиляции .

...