"c/c++的两个坑"

#DATE: 2017-11-11 10:25:12

1 arm-gcc版本

gcc version 5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496] (GNU Tools for ARM Embedded Processors)

2 坑1

在cpp文件中的c函数,如果没有使用extern "C"强制说明,函数名在.o文件中会按照c++的规则自动增加一些特殊字符,而连接后的elf反汇编时则会回到c的函数名.

这会导致链接到并不是你想要的函数

3 坑2

在extern "C"强制说明的c函数中调用c++对象的方法,函数调用会被编译器直接忽略!!!