有人说,在嵌入式的代码中,尽量少用或不用static,但是实际上,包括MISRA C规范中,都没有讲到static的不便。只要掌握好了,使用起来还是有很多好处。
一、Static在C语言中,有两个特征:
1、
变量会被放在程序的全局存储区中,这样可以在下一次使用中保持原来的赋值。
2、
变量用static告诉编译器,自己仅仅在变量的作用范围内可见,这一特点是他和全局变量的区别。
若全局变量仅仅在单个文件中使用,可以将这个变量修改为静态全局变量,以降低模块间的耦合度。
若全局变量仅仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度。
设计和使用动态全局变量,静态全局变量和静态局部变量的函数时,需要考虑重入的问题。
如果需要写一个需要重入的函数,一定要避免函数中使用static变量。
三、需要注意的问题当某函数的返回值是指针时,必需是static的局部变量的地址作为返回值。
函数前加static使的函数成为静态函数,当此处的static不是指存储方式,而是指函数的使用域仅仅限于本文件(内部函数)。好处是不同人编写的函数不同担心函数的同名。
文章评论(0条评论)
登录后参与讨论