1po*_*o61 -1 c embedded pointers
想知道下面两位(标记为方法1和方法2)之间的差异是什么,与之相关的任何好处/风险,最后是有更好的方法.
typedef struct
{
int iAnInteger;
} s_Thing;
s_Thing sMine;
void SomeFunction(int myInt)
{
/* Method 1 */
s_Thing *pMine = &sMine;
pMine->iAnInteger = 0;
/* Method 2 */
sMine.iAnInteger = 0;
}
Run Code Online (Sandbox Code Playgroud)
如上所述,有哪些优点/缺点,最佳做法?
谢谢!
方法3:
void SomeFunction(int myInt, s_Thing* pWho)
{
pWho->iAnInteger = 0;
}
Run Code Online (Sandbox Code Playgroud)
甚至更好,因为如果你对如何s_Thing创建实例进行更改,它将更易于维护.
您的其他两种方法都存在本地化问题:尝试限制修改全局范围内的数据的函数数量.
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |