UNIX C函数中的命名约定(_t和_st)

时间:2010-09-22 07:03:23

标签: c unix

我注意到有一些名为*****_t******_st的函数返回类型。 “_st”和“_t”是什么意思?

1 个答案:

答案 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的函数的单个实例(但我可能看起来不够努力)。