当前位置:网站首页>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 .
 

 

 

 

 

 

原网站

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