Как экстерн работает в C++?

Это от <iostream>:

namespace std 
{
  extern istream cin;       ///< Linked to standard input
  extern ostream cout;  
...

Это кажется при помощи extern типы данных, определенные в других пространствах имен, просто будут доступны?

6
задан symfony 25 March 2010 в 04:42
поделиться

3 ответа

extern используется для ссылки на переменную, определенную в другом модуле компиляции (на данный момент вы можете рассматривать модуль компиляции как .cpp файл). Операторы в вашем примере объявляют , а не определяют cin и cout . Он сообщает компилятору, что определение этих объектов находится в другом модуле компиляции (где они не объявлены как extern ).

5
ответ дан 8 December 2019 в 16:00
поделиться

Нет, это явный способ сказать, что cin и cout объявлены без их фактического определения.

2
ответ дан 8 December 2019 в 16:00
поделиться

extern означает, что «эти переменные определены в каком-либо другом модуле компиляции (.cpp или. lib) "

В этом случае вы #include в свой .cpp файл, и поскольку cin и cout объявлены как extern , компилятор позволит вам использовать их без жалоб. Затем, когда компоновщик запускается, он ищет все переменные extern и сортирует их.

8
ответ дан 8 December 2019 в 16:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: