C语言中对函数圈复杂度的计算会算上以下两种分支吗?
(1)会不会算上宏的分支?如下增加了一个if宏判断,圈复杂度会+1吗?
//原代码段
a = 10;
//增加了宏分支的
#if IS_ENABLE(XXXX_MODULE_CONFIG)
a = 10;
#else
a = 5;
#endif
(2)会不会算上goto语句的分支?如下增加一个goto语句,圈复杂度会+1吗?
//原代码段
if (x) {
y = 0;
goto remove_dev;
}
remove_dev:
xxxxxxx;
//增加了goto的代码段
if (x) {
y = 0;
goto remove_dev;
}
if (m) {
n = 0;
goto free_table;
}
free_table:
//语句省略
remove_dev:
//语句省略
宏不会,宏是在编译器就会确定下来的
goto应该也不会,虽然是调整,但只是一条执行路线