静态函数中使用非静态变量 会有什么有关问题吗

静态函数中使用非静态变量 会有什么问题吗

static int getOfdSPValueFromOEM(BSTR bstrFalgValue)
{
s_bstr value;
_get_NormalOEMValue(__X("setup"), bstrFalgValue, &value);
if (value.empty() != FALSE || value.isEqualString(__X("1")))
return 1;

return 0;
}

代码如上,getOfdSPValueFromOEM是一个全局函数,把它定义成静态的了,但是函数内部的s_bstr value, _get_NormalOEMValue都是非静态变量/函数,s_bstr是自己封装的字符串类
类似这样的写法会不会有什么安全隐患??
------解决思路----------------------
除了在类的成员函数中不能用静态函数来调用非静态成员,其它的地方无所谓了
其一,普通函数本来就具有全局特性
其二,你定义的是函数内部的局部变量,在函数中开辟,在函数中释放,没有什么问题
其三,全局函数没必要定义成静态函数的
------解决思路----------------------
老毛桃U盘工具,写入保护,防止病毒侵袭,读写速度快,安全稳固,U盘是病毒传播的主要途径之一,老毛桃启动盘采用写入保护技术,彻底切断病毒传播途径。光盘和光驱系机械产品,容易划伤和损坏;U盘可达5万次读写次数,USB2.0高速传输,整个过程不到10分钟。
http://www.laomaotao.net/?D8171
------解决思路----------------------
如果你这个函数只在这个 .c/.cpp 中使用,将来也不打算在其他 .c/.cpp 中使用,加 static 其实是个好习惯
如果这个函数在其它 .c/.cpp 中使用了,就不能加,否则会造成链接错误,除非你把这个函数移到 .h 中

无论如何,只要你编译链接通过了,就无所谓了, static 只是一个链接属性,运行的时候是没有区别的。

------解决思路----------------------
这里的 static 不是修饰为 静态函数的。这是修饰为模块内部的。