当前位置:网站首页>Keyword static
Keyword static
2022-07-06 02:16:00 【Awei II】
Common keywords
auto break case char const continue default do double else enum extern float for goto if int register return short signed sizeof static struct switch typedef union unsigned void volatile while
among static Keywords are more important , Let's talk about it alone
static Keywords have three functions 1. Modify local variables 2、 Modify global variable 3、 Modify function
1、 Modify local variables
First of all, look at such a string of code
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void test()
{
int a = 1;
a++;
printf("%d\2", a);
}
int main()
{
int i = 0;
while (i < 10)
{
test();
i++;
}
return 0;
}
The output of the above code is as follows

Local variables in the above code a Didn't add static, So every time you jump out of the loop ,a The value of will become a++ The value of is 2, So every time the output value is 2
Now look at local variables a And before static, The following code snippet
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void test()
{
static int a = 1;
a++;
printf("%d\2", a);
}
int main()
{
int i = 0;
while (i < 10)
{
test();
i++;
}
return 0;
}
The output of the above code segment is as follows

Join in static keyword , Every time I output a The values of are preserved , So it will be based on the original ++
2、 Modify global variable
First, define a global variable in a source file

Then output the global variable under another source file

You can see the global variables g_val It can output normally .
Now? , If you add static

Then continue to output this global variable under another source file

Can see , Something went wrong , use static The defined global variables cannot be output under another source file , This is because static Defined global variables can only be in their own internal .c In the source file , But it cannot be used in the whole project , But generally defined global variables can be used in the whole project . Global variables , Other files can be used because global variables are externally linked . however static After decorating the global variables , It has the internal connection property , So it can't be used in the whole project .
3、static Decorate global functions
First, define a global function under a source file , as follows

Call this function under another source file , The following is after the call

Can see , Under normal circumstances, the global functions defined can be called under other source files
Now when defining the global function, add static

Then call under other source files , give the result as follows

Call error , This is because of the relationship with static Modifying global variables is similar to , Add static It means to change the external connectivity of the original global function into internal connectivity , As a result, it cannot be used in the whole project .
边栏推荐
- Paper notes: graph neural network gat
- Method of changing object properties
- 729. 我的日程安排表 I / 剑指 Offer II 106. 二分图
- 好用的 JS 脚本
- Audio and video engineer YUV and RGB detailed explanation
- MySQL lethal serial question 1 -- are you familiar with MySQL transactions?
- Redis如何实现多可用区?
- 500 lines of code to understand the principle of mecached cache client driver
- Sword finger offer 12 Path in matrix
- 同一个 SqlSession 中执行两条一模一样的SQL语句查询得到的 total 数量不一样
猜你喜欢

PAT甲级 1033 To Fill or Not to Fill
![[solution] add multiple directories in different parts of the same word document](/img/22/32e43493ed3b0b42e35ceb9ab5b597.jpg)
[solution] add multiple directories in different parts of the same word document

【MySQL 15】Could not increase number of max_open_files to more than 10000 (request: 65535)

Social networking website for college students based on computer graduation design PHP

Exness: Mercedes Benz's profits exceed expectations, and it is predicted that there will be a supply chain shortage in 2022

爬虫(9) - Scrapy框架(1) | Scrapy 异步网络爬虫框架
![[solution] every time idea starts, it will build project](/img/fc/e68f3e459768abb559f787314c2124.jpg)
[solution] every time idea starts, it will build project

Leetcode3. Implement strstr()

Tensorflow customize the whole training process

Redis如何实现多可用区?
随机推荐
[depth first search notes] Abstract DFS
[community personas] exclusive interview with Ma Longwei: the wheel is not easy to use, so make it yourself!
Using SA token to solve websocket handshake authentication
Audio and video engineer YUV and RGB detailed explanation
sql表名作为参数传递
VIM usage guide
MySQL lethal serial question 1 -- are you familiar with MySQL transactions?
It's wrong to install PHP zbarcode extension. I don't know if any God can help me solve it. 7.3 for PHP environment
Global and Chinese markets of general purpose centrifuges 2022-2028: Research Report on technology, participants, trends, market size and share
This time, thoroughly understand the deep copy
更改对象属性的方法
Computer graduation design PHP college classroom application management system
leetcode-2. Palindrome judgment
Ali test open-ended questions
Redis list
2022年版图解网络PDF
Global and Chinese markets hitting traffic doors 2022-2028: Research Report on technology, participants, trends, market size and share
Overview of spark RDD
Spark accumulator
Pangolin Library: subgraph