在普通C

时间:2017-03-15 10:48:08

标签: c++ c

我习惯用C ++编程。我喜欢面向对象的东西和语言提供的东西。 但是现在我必须用普通的C编程,因为我必须使用不支持C ++编译器的嵌入式系统,只有普通的C。

我想保持对象"面向对象"函数,因此我通常写这样的模块:

//Maybe hidden with PIMPL...
typedef struct myModuleData_
{
}myModuleData;

myModuleData* moduleCreate();
void moduleFree(myModuleData *this_);

void moduleSetSomething(myModuleData *this_, int something);

现在我的问题是:我可以用this_替换this(没有最后的下划线)吗?如果我在C ++中使用这个模块并使用extern" C"?

,那么普通C中this的使用是否会在将来干扰C ++

1 个答案:

答案 0 :(得分:2)

不,你不能这样做,因为this是C ++中的保留字。它不能用作普通参数的名称。

您可以从标题中删除该名称并将其保存在C文件中,但这当然意味着使标题稍微恶化,因为它不再包含该参数的含义。