What is the concept of using extern in c / c ++?

Sorry for this question. But I am very interested to know the keyword externin C\C++.

while searching for explanations for externI found out that externit tells the compiler that a variable or function is already defined in some other file or program.

But if so, then why do we use extern?

since I tried some codes as follows:

extern int var;
int main(void)
{
 var = 10;
 return 0;
}

This code gives me an error message like unresolved external symbol "int var" (?var@@3HA).

and if I use some kind of code, for example:

extern int var;
int main(void)
{
 int var = 10;
 return 0;
}

It does not show any errors and gives the same value as I defined in the main function.

, - extern? . , , . Advance.

+4
6

extern ( " " ). , main.c :

extern int var;
int main(void)
{
    var = 10;
    return 0;
}

var, , extern : " "

, , other.c:

int var = 0;

, , , var.

extern var . extern var (ODR-), , .

+5

, extern -declared, C

int var;

.

, int var = 10; main() > ; , , , , extern, C. , (.: ).

+3

extern , . :

main.cpp

extern int var;
int main(void)
{
 var = 10;
 return 0;
}

var.cpp

int var;

, var main.cpp var.cpp

extern int var, . int var = 10 int var . , , extern int var, .

+1

.

extern , , , .

- , extern, , .

, - , .

this extern.

+1

, double myvar=5 file1.cpp, file2.cpp, file2.cpp

extern double myvar;

++ . , , , .

:

File1.cpp: double myvar=5 , . file1.cpp file1.o.

File2.cpp: , myvar - file2.cpp, (, ) file1.cpp. , file2.cpp file2.o, extern double myvar, file2.cpp . .

, , ( ), ( g++) file1.o file2.o. , file2.o myvar.

+1

A variable declaration externtells the compiler that the actual instance of the variable is somewhere else. If you do not provide it elsewhere, the link phase will fail.

In your second example, you are not referring to the declared variable at all extern. You are announcing a new one as part of your core function, which obscures the global declaration.

0
source

Source: https://habr.com/ru/post/1526896/


All Articles