假设我想使用一个包含这 2 个标头的库:
// types.h
typedef const char* Value;
typedef const char* Key;
// map.h
/** The given name and value will be copied into the map */
void add(struct Map* m, Key key, Value value);
我假设注释意味着char*
skey
和s 的内容value
将被add
函数复制,并且在它返回后它不会存储指针以供使用。这意味着调用函数可以在调用之后立即对这些指针执行任何操作,例如free
ingkey
和。value
add
调用函数也可以期望add
不会修改key
or value
。
现在,如果没有该注释并且既没有实现的源代码也没有使用示例,那么有经验的 C 程序员会如何假设这些所有权问题?