c语言函数命名规则
例1:
#include
#include
int Add(int left, int right);//函数声明
int main()
{
Add(1, 2);//编译器在找的时候修饰为_Add
}
可以看到,编译器在找函数时并不是直接找Add的,而是找的是_Add
doubleAdd(double left, double right);//声明为double类型的
int main()
{
Add(1.0, 2.0);
}
可以看到,虽然调用的函数不同,但是编译器在找的时候依然是_Add
综上例子验证,我们可以看出:两个同名的函数Add,当传参类型不同时,编译器在找函数体的时候都是以_Add来寻找的,这样一来,显然不可能找到正确的对应函数。所以也就不支持重载
C++函数命名规则
例:
int Add(int left, int right);
double Add(double left, double right);
int main()
{
Add(1, 2);
Add(1.0, 2.0);
}
这两个函数构成重载,我们在主函数中分别进行调用,观察报错信息,看与之前C语言的报错信息有什么不同
下面直接上图描述
vs验证–>
int Add(int left, int right);
double Add(double left, double right);
double Add(int left, double right);
//主函数中调用
int main()
{
Add(1, 2);
Add(1.0, 2.0);
Add(1, 2.0);
}
C++中怎么样将一个函数按照C风格编译?
//检测方法:只声明,不定义Add函数,然后再在main函数中调用
extern "C" int Add(int left, int right);
int main()
{
Add(1, 2);
}
原来的默认是cpp编译风格–>如下
int Add(int left, int right);
int main()
{
Add(1, 2);
}