【发布时间】:2009-10-23 17:46:47
【问题描述】:
我有一种如下所示的方法。 for 循环是否总是让编译器执行“内联请求”?
inline void getImsiGsmMapFrmImsi
(
const string& imsiForUEDir,
struct ImsiGsmMap& imsiGsmMap
)
{
for (int i = 0 ; (unsigned)i < imsiForUEDir.length() - 1 ; i++)
{
imsiGsmMap.value[i] = imsiForUEDir[i] - '0' ;
}
imsiGsmMap.length = imsiForUEDir.length() - 1 ;
}
【问题讨论】:
-
哇。对不起,AraK 和史蒂文。 SO 团队真的需要处理多次编辑问题。
-
谁必须阅读该代码,我深表同情。
-
如果这是 C++,为什么要在结构名称前加上
struct?在 C++ 中,它们是一等公民,而不仅仅是标签。如果i需要是unsigned(数组索引也需要),那你为什么要让它签名呢?您确定不想访问imsiForUEDir中的最后一个元素吗? (对于有上下文的人,很明显这不是一个错误,而是故意的,但据我所见,它看起来很可疑。) -
struct 未在原始方法中使用。它只是为了澄清这里的上下文。 (无符号)我是个问题。同意它不存在。是的,imsiForUEDir 的最后一个元素不应该被访问。
-
唷,我很高兴他们在函数名称中将
From缩写为Frm。否则,该标识符将是无法忍受的!
标签: c++ optimization loops inline