C语言和C++中的函数命名规则

c语言函数命名规则

例1:

#include<stdio.h>
#include<stdlib.h>
int Add(int left, int right);//函数声明

int main()
{
    Add(1, 2);//编译器在找的时候修饰为_Add
}

keyi
可以看到,编译器在找函数时并不是直接找Add的,而是找的是_Add

double	Add(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);
}

在这里插入图片描述

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页