当前位置:网站首页>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 :
Of course, modifying functions is the same way , Pictured :
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 )
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 :
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
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.
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 )
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
This is a plus static Of
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 .
边栏推荐
- keep-alive
- Optional parameters in the for loop
- Want to ask the big guy, is there any synchronization from Tencent cloud Mysql to other places? Binlog saved by Tencent cloud MySQL on cos
- I collect multiple Oracle tables at the same time. After collecting for a while, I will report that Oracle's OGA memory is exceeded. Have you encountered it?
- I want to inquire about how to ensure data consistency when a MySQL transaction updates multiple tables?
- Bugku's Ah Da
- Redis' transaction mechanism
- Mysql---- function
- Thymeleaf uses background custom tool classes to process text
- Can gbase 8A view the location of SQL statement history?
猜你喜欢
随机推荐
机器学习笔记 - 灰狼优化
I spring and autumn blasting-2
CODING DevSecOps 助力金融企业跑出数字加速度
Ctfshow web entry command execution
Bugku telnet
复现Thinkphp 2.x 任意代码执行漏洞
SQL Server learning notes
The difference between SQL Server char nchar varchar and nvarchar
Ctfshow web entry information collection
Fr exercise topic - simple question
I want to inquire about how to ensure data consistency when a MySQL transaction updates multiple tables?
JS knowledge points-01
MySQL表字段调整
MySQL5.7的JSON基本操作
Anaconda uses China University of science and technology source
keep-alive
Common MySQL interview questions
Interpretation of Apache linkage parameters in computing middleware
12 MySQL interview questions that you must chew through to enter Alibaba
ionic cordova项目修改插件