c++的名称修饰问题

c++的名称修饰问题

比如下面的例子,c++会使用为这些同名但是实际不同的函数打上签名信息编码(名称修饰),但是c++编程语言没有对名称修饰方案做出标准化规定,所以不同编译器有不同的方式修饰,导致不同编译器产生的.o文件不能一起链接

1
2
3
int  f (void) { return 1; }
int f (int) { return 0; }
void g (void) { int i = f(), j = f(0); }