CMock 未能正确解析函数参数

问题描述

我有一段代码,我不允许更改但需要模拟。当我在认配置下使用 cmock 时,cmock 似乎对其中一个参数的编写方式不满意。例如,第二个参数 int (* numb) 将被错误解析并触发编译错误

func.h(需要mock的头文件):

#include <stdio.h>

void func(char *str,int (* numb));

sample.c(统一测试套件):

#include <stdio.h>
#include "unity.h"
#include "Mockfunc.h"

int a = 1;

void call_func (void) {
    printf("Calling func\n");
    func("test",&a);
}

void setUp() {}

void tearDown() {}

void test_case_0 (void) {
    func_Expect("test",&a);
    call_func();
}

编译这段代码,gcc 会产生第一个错误

mocks/Mockfunc.c:9:36: error: expected ‘=’,‘,’,‘;’,‘asm’ or ‘__attribute__’ before ‘)’ token
    9 | static const char* cmockString_numb) = "numb)";
      |                                    ^
In file included from cmock/vendor/unity/src/unity.h:21,from cmock/src/cmock_internals.h:10,from cmock/src/cmock.h:10,from mocks/Mockfunc.c:5:

有谁知道我可以解决这个问题的方法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)