我注意到有一些名为*****_t
或******_st
的函数返回类型。 “_st”和“_t”是什么意思?
答案 0 :(得分:7)
POSIX保留名称以_t
结尾的类型。虽然看到代码发明它自己的类型名称结尾_t
是很常见的,但这样做很危险 - 你可以运行定义具有相同名称的(不同)类型的POSIX系统。
在libmemcached源代码中,看起来_st
后缀用于表示结构类型:
types.h:typedef struct memcached_st memcached_st;
types.h:typedef struct memcached_stat_st memcached_stat_st;
types.h:typedef struct memcached_analysis_st memcached_analysis_st;
types.h:typedef struct memcached_result_st memcached_result_st;
types.h:// All of the flavors of memcache_server_st
types.h:typedef struct memcached_server_st memcached_server_st;
types.h:typedef const struct memcached_server_st *memcached_server_instance_st;
types.h:typedef struct memcached_server_st *memcached_server_list_st;
我没有找到一个结尾_st
的函数的单个实例(但我可能看起来不够努力)。