stm32 内核里面"C"是啥意思怎么用的?

2019-12-22 13:51发布

本帖最后由 蜗牛蜗牛 于 2017-9-21 12:26 编辑

今天看ebox源码看到了"C" extern "C" {  } 具体啥意思,我猜测是不是括号里面使用c写的不是C++ ?
同时之前在stm32 内核里也见过这样用法,大神指教  啊


不懂的进来看看吧,https://baike.baidu.com/item/extern%20"C"/15267013?fr=aladdin 原来这里就有
提醒一下关键词搜索:extern "C" 问题解决
14条回答
takashiki
2019-12-23 15:07
security 发表于 2017-9-21 08:26
你的理解是对的。
更多信息,网上搜一下,有很多说明。

我经常在C++和C交互调用的代码中写这样的东西,难道一直都错了?但是编译器并不认为我错了,结果也是正确的。
写了extern "C"的C++代码依然是C++,啥时变成C了?只是函数命名等等不使用C++修饰了,当然也就无法进行函数重载了而已。
比如:
  1. extern "C" int GetListSize(void* List) {
  2.    std::list* lst = (std::list*) List;
  3.    return lst->size();
  4. }
复制代码您评断下这个代码是C还是C++,有没有问题

一周热门 更多>