我习惯用 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++?
最佳答案
不,您不能这样做,因为 this
是 C++ 中的保留字。它不能用作普通参数的名称。
您可以从 header 中删除名称并将其保留在 C 文件中,但这当然意味着使 header 稍微更糟,因为它不再包含该参数的含义提示。
关于c++ - 在纯 C 中使用 `this` 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42807542/