<分区>
假设您在 C 中有一个初始化指针的函数:
void initialize(Pointer * p);
我会说参数 p 是一个 [out] 参数。
然后我们有一个获取 p 并对其进行操作的函数。
void manipulate(Pointer * p)
现在我怀疑 p 是 [out] 还是 [in/out]。
我会说 [out] 因为我们只是操纵它。 我会说 [in/out] 因为进来的东西已经被初始化了。
我想知道哪个是真的?
标签 c
<分区>
假设您在 C 中有一个初始化指针的函数:
void initialize(Pointer * p);
我会说参数 p 是一个 [out] 参数。
然后我们有一个获取 p 并对其进行操作的函数。
void manipulate(Pointer * p)
现在我怀疑 p 是 [out] 还是 [in/out]。
我会说 [out] 因为我们只是操纵它。 我会说 [in/out] 因为进来的东西已经被初始化了。
我想知道哪个是真的?
最佳答案
声明中没有任何内容表明这一点。唯一真正的决定是函数中的代码做了什么。
在更现代的实现中,const
关键字可用于指示只读参数:
void manipulate(const Pointer * p)
这表示*p
不能在函数内部赋值,所以是只读(或in
)类型。但是,如果缺少 const
,它仍然是只读的。
关于c - C 中的输入/输出变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13561108/