是否可以在 extern "C" 块中使用 运行 C++ 代码?

Is it possible to run C++ code inside an extern "C" block?

例如

class demo {
public:
    static void printDemo(void)
    {
        std::cout << "Hi there" << std::endl;
    }
};

extern "C"{

void myInterrupt(void)
{
    demo::printDemo();
} 

}

通常 extern "C" 是为了保持 C 风格的链接,所以 myInterrupt 的声明与在另一个文件如 startup.S 中声明的中断向量中的声明相匹配,地址此功能的有效安装在向量中。

但是,在此块内调用其他 C++ 函数会影响它吗?

Is it possible to run C++ code inside an extern “C” block?

是的。

该函数具有 C 接口,可以从 C 程序调用它。但实现可以包含 C++ 代码。

But does calling additional c++ functions inside this block affects it?

没有