Memcached -- Testapp.c
2015-08-05 09:06
621 查看
关于函数指针的用法:
Testapp.c 里面有这样的一个结构体
struct testcase testcases[] = {
{ "cache_create", cache_create_test },
{ "cache_constructor", cache_constructor_test },
{ "cache_constructor_fail", cache_fail_constructor_test },
..........................此处省略一大部分类似的结构.......................
{ "binary_pipeline_hickup", test_binary_pipeline_hickup },
{ "shutdown", shutdown_memcached_server },
{ "stop_server", stop_memcached_server },
{ NULL, NULL }
};
struct testcase 是这样一个结构体
struct testcase {
const char *description;
TEST_FUNC function;
};
里面声明的函数类型TEST_FUNC 是经过typedef重新定义的一个函数指针
typedef enum test_return (*TEST_FUNC)(void);
而枚举类型 enum test_return 被定义为
enum test_return {TEST_SKIP, TEST_PASS, TEST_FAIL};
function定义为这样的结构
static enum test_return cache_create_test(void)
{
cache_t *cache = cache_create("test", sizeof(uint32_t), sizeof(char*),
NULL, NULL);
assert(cache != NULL);
cache_destroy(cache);
return TEST_PASS;
}
函数里面具体做些什么就不去探究了
看到结构体数组 testcases的最后一个值为{NULL, NULL},因此可以用该条件判断循环结束,来遍历数组
for(ii=0; testcases[ii].description!=NULL; ++ii)
{
printf("description:%s",testcases[ii].description);
//执行函数
testcases[ii].function();
}
这样就能将所有的函数都去执行一次
Testapp.c 里面有这样的一个结构体
struct testcase testcases[] = {
{ "cache_create", cache_create_test },
{ "cache_constructor", cache_constructor_test },
{ "cache_constructor_fail", cache_fail_constructor_test },
..........................此处省略一大部分类似的结构.......................
{ "binary_pipeline_hickup", test_binary_pipeline_hickup },
{ "shutdown", shutdown_memcached_server },
{ "stop_server", stop_memcached_server },
{ NULL, NULL }
};
struct testcase 是这样一个结构体
struct testcase {
const char *description;
TEST_FUNC function;
};
里面声明的函数类型TEST_FUNC 是经过typedef重新定义的一个函数指针
typedef enum test_return (*TEST_FUNC)(void);
而枚举类型 enum test_return 被定义为
enum test_return {TEST_SKIP, TEST_PASS, TEST_FAIL};
function定义为这样的结构
static enum test_return cache_create_test(void)
{
cache_t *cache = cache_create("test", sizeof(uint32_t), sizeof(char*),
NULL, NULL);
assert(cache != NULL);
cache_destroy(cache);
return TEST_PASS;
}
函数里面具体做些什么就不去探究了
看到结构体数组 testcases的最后一个值为{NULL, NULL},因此可以用该条件判断循环结束,来遍历数组
for(ii=0; testcases[ii].description!=NULL; ++ii)
{
printf("description:%s",testcases[ii].description);
//执行函数
testcases[ii].function();
}
这样就能将所有的函数都去执行一次
相关文章推荐
- Memcached 入门简介
- Spring与Memcached-xmemcached整合
- CentOS下Memcached安装和使用详解
- php -- memcached 内存缓存
- memcached for windows 修改端口和最大内存,以及常用命令
- 同一台Windows机器中启动多个Memcached服务
- simple-spring-memcached简介
- windows环境下如何安装memcached教程
- win8(64位)下memcache安装时报错“ failed to install service or service already installed”
- nginx+memcached处理tomcat中session共享问题
- memcached缓存系统学习笔记之一:memcached缓存系统基础知识和环境搭建
- Memcache知识点梳理
- 配置spring-mvc + simple-spring-memcached
- Memcached在Windows7上的安装问题
- Redis使用总结之与Memcached异同
- Nosql/Redis/ttserver/Flare/memcache比较
- memcache
- Nginx+Tomcat+memcached负载均衡实现session共享
- centsOs(Linux) memcache 安装教程
- centos下安装memcached