我有一些 C++ 应用程序包含和使用的 C 代码,这里的重要部分:
C代码
ifdef __cplusplus
extern "C" {
endif
...
typedef void* problem_type;
...
int problematic_fn_proto( const problem_type const arg );
ifdef __cplusplus
}
endif
不幸的是,由于duplicate 'const'
错误,这将无法编译。这typedef
是导致问题的原因。如果我只是将函数的原型更改为:
int problematic_fn_proto( const void* const arg );
没有更多的问题。不幸的是,我无法删除typedef
. 这里有解决方案吗?我可以对 C 部分进行其他更改,但 typedef 及其用作函数的参数必须保留。