static修饰全局变量,为何就不能用了?
之前用这个,还被训了。
平时使用RTOS时,大家是怎么处理必须用到的全局变量,尤其是各个线程都用的数据?
用邮箱发送地址,然后保存在线程栈中的局部变量吗?
如果整个工程都要用的全局,不要用static就可以了。当然这样不严谨;
严谨些,就使用RTOS中的进程通讯的方法吧
我也喜欢用static修饰全局变量和函数,用于保证该函数和变量只能在该文件内起作用。防止多文件函数和变量重名。
如果进程间通讯,还是用信号量吧,严谨些比较好
各个线程都用到的数据就需要考虑进程间通信机制,因为一个变量,可能有多个线程去修改或者读取值,每个线程的执行顺序不是可预测的,所以会有冲突,进程间通信机制就是解决这类问题的
用static修饰的全局变量限定了作用域,只在当前文件可用,如果做个封装,封装成get、set函数extern外部,其它文件就也可以使用