我有这样的事情:
typedef struct
{
pthread_mutex_t mtx;
/* Other stuff */
} some_struct_t;
void some_func (some_struct_t *s)
{
pthread_mutex_lock (&s->mtx);
/* Some stuff */
pthread_mutex_unlock (&s->mtx);
}
some_func
不修改s
,我想将签名更改为
void some_func (const some_struct_t *s);
但是对pthreads
函数的调用不允许我在没有警告的情况下这样做。
有什么常见的习语可以用来表示函数内部的逻辑上将some_struct_t
是不变的吗?
有什么方法可以some_func
从另一个没有进行强制转换的函数内部使用const some_struct_t *s
?