加了static 就相当于全局变量了, 下次再调用这个函数时,仍然保持上次的值.如果没有static 就是局部变量.
include<stdio.h>void main(){ static unsigned char d=0,a,k,s; while(1) { for(int i=0;i<8;i++) { a=4; k=3; s=6; d++; } printf("d=%d\n",d); getchar(); //运行一下就知道了,第一次循环之后d=8 }} ...
#define uchar unsigned char uchar i; static int n=0; uchar niu[9]={1,3,6,9,5,20,100,12}; int led(char x); main() { for(i=0;i<3;i++) { n=n+1; led(n); } } int led(char x) { n=niu[x]; //3,5,100 printf("%d\t",n); return n; } 执行完程序后,输出n...
{ unsignedchara;staticunsignedcharb; … a++; b++; } 在这个例子中,变量a是局部变量,变量b为局部静态变量。作用一说明了局部静态变量b的特性:在函数体,一个被声明为静态的变量(也就是局部静态变量)在这一函数被调用过程中维持其值不变。这个时候作用和全局变量是同的。 下面简单的例子,声明函数的一个局部...
static unsigned char b; … a++; b++; } 在这个例子中,变量a是局部变量,变量b为局部静态变量。作用一说明了局部静态变量b的特性:在函数体,一个被声明为静态的变量(也就是局部静态变量)在这一函数被调用过程中维持其值不变。这句话什么意思呢?若是连续两次调用上面的函数test1: ...
(关键字,Static,typedef)-C语言笔记,1、常见关键词一、数据类型关键字(12个)(1)char:声明字符型变量或函数 (2)double:声明双精度变量或函数 (3)enum:声明枚举类型 (4)float:声明浮点型变量或函数 (5)int:声明整型变量或函数 (6)long:声明长整型变量或函数 (7)s
printf("QQ:%s\nname:%s\nage:intsize;所以a[10]=number;1[2]=tmp1[3]=*(have i);
7、unsigned char *pChIP = (const unsigned char *&IpAddr; sprintf(strBuff, "%u.%u.%u.%u", pChIP0, pChIP1, pChIP2, pChIP3; return strBuff; 二、外部静态变量函数在C中static有了第二种含义:用来表示不能被其它文件访问的全局变量和函数。, 但为了限制全局变量/函数的作用域, 函数或变量前加static...
static unsigned char b; … a++; b++; } 1. 2. 3. 4. 5. 6. 7. 8. 在这个例子中,变量a是局部变量,变量b为局部静态变量。作用一说明了局部静态变量b的特性:在函数体,一个被声明为静态的变量(也就是局部静态变量)在这一函数被调用过程中维持其值不变。这句话什么意思呢?若是连续两次调用上面的...
其实test函数中的 i 创建好后,出函数的时候是不会销毁的,重新进入函数也就不会重新创建变量,接着上次累积的数值继续计算。 结论:static修饰局部变量改变了变量的生命周期,⽣命周期改变的本质是改变了变量的存储类型,本来⼀个局部变量是存储在内存的栈区的,但是被 static 修饰后存储到了静态区。存储在静态区的...