我习惯用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"?
this
的使用是否会在将来干扰C ++
答案 0 :(得分:2)
不,你不能这样做,因为this
是C ++中的保留字。它不能用作普通参数的名称。
您可以从标题中删除该名称并将其保存在C文件中,但这当然意味着使标题稍微恶化,因为它不再包含该参数的含义。