让我们定义一个结构parser
:检查函数指针类型
struct parser {
int (*buffer_push_strategy)();
int (*escape_buffer_push_strategy)();
int (*do_callback_strategy)();
};
我有一个初始化函数:
int parser_init() {
if (some_condition) {
parser->buffer_push_strategy = buffer_push_strategy1;
parser->escape_buffer_push_strategy = escape_buffer_push_strategy1;
parser->do_callback_strategy = do_callback_strategy1;
}
else {
parser->buffer_push_strategy = buffer_push_strategy2;
parser->escape_buffer_push_strategy = escape_buffer_push_strategy2;
parser->do_callback_strategy = do_callback_strategy2;
}
return 0;
}
在策略函数定义的地方。好吧,我的兴趣在于确定在编写单元测试时使用了哪种策略。任何想法如何实现?
我在互联网上看到is_pointer
函数C++ 11
,但我不认为这会对我有帮助。
解析器是一个类型,而不是一个变量。在第一段代码中删除typedef。 – EFenix
@AntonioGarrido对不起 – astonished
我不确定这个问题...你在找什么:'int strategy =(parser-> buffer_push_strategy == buffer_push_strategy1)? 1:2;' – EFenix