当前位置:网站首页>Advanced level of static and extern

Advanced level of static and extern

2022-07-05 15:26:00 Houli crab 670

First of all, it is only within the scope of my knowledge , If it is incomplete or wrong , Welcome to point out thank you .

extern

extern Is used to declare external symbols ( In other projects )
Such as : In the same source file , I defined a global variable in a project , If you want to use it in another project , So you need extern Modify the , Pictured : Insert picture description here
Of course, modifying functions is the same way , Pictured : Insert picture description here
I believe you can understand at a glance , No explanation , If I don't know, I'll send a private message ok

static

There are three ways to use it , Here we will elaborate one by one
Before talking about these three methods of use , Let's start with something else ( I don't know what to call )
 Insert picture description here
It is divided into these areas in the memory of the computer ( Of course, there are more than these ), The stack area will be destroyed after the life cycle , The life cycle of the static area is consistent with that of the program , Only the program ends , The life cycle of the static area will come to an end , such as : Insert picture description here
According to the principle that , It should output "234567891011" Of , But only 10 individual 2, The reason is because a Stored in the stack , After using it once ,a Your data will not be saved , Destroy after running , So every output print() When , It's all about letting a=1 Start calculating , So there is the above result . The following will say how to solve this problem .

Modify local variables

Like the code diagram above , If you put a Put it in the static area a Data will not be destroyed , Pictured  Insert picture description here
such , Only static Modifying variables a Just ,a It is put into the static area , So the data is preserved , The above results are output .
therefore , If you want local variables not to be destroyed, you can use static modification .

Modify global variable

Before I talk about it , Global variables are those with external link properties , Generally speaking, it can be used extern Statement to use .
Just like this.  Insert picture description here
But if you use static Embellished words , It will put the global variables into the static area ( Look at the picture above ) So that it no longer has external link properties ( Directly above ) Insert picture description here
Use static It will be like this ,“ An unresolved external instruction ”, That is because it is put into the static area .
When you don't want others to use this variable ( function ) Or for other purposes , You can use static To modify global variables .

Modify function

Like global variables, they all have external link attributes , If you are static After modification, there are only internal link attributes , Similarly, it cannot be used in other projects of the same source file . Such as :
This is not added static Of
 Insert picture description here
This is a plus static Of
 Insert picture description here
 Insert picture description here
And... Will appear after adding static Modify global variables , The usage is similar to that of global variables .
That's right static and extern Understanding of usage .

原网站

版权声明
本文为[Houli crab 670]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202140514119863.html