c++ 156函数

inline内联函数

#include
using namespace std;

inline void printA()
{
    int a = 10;
    cout << "a:" << a << endl;
 }
              
void main()
{
    //printA();
    //c++编译器会这样 把函数体机械地放到main函数里面
    {
        int a = 10;
        cout << "a:" << a << endl;
    }
    return;
}
//带参数的宏
#define MYFUNC(a,b) ((a)<(b)?(a):(b))

inline int myfunc(int a, int b)
{
    return  a < b ? a : b;
}
int main13() {
    int a = 1;
    int b = 3;
    int c = myfunc(++a, b);
   // int c = MYFUNC(++a, b);  //宏替换 并展开((++a)<(b)?(++a):(b))
    printf("a=%d\n", a);
    printf("b=%d\n", b);
    printf("c=%d\n", c);
    system("pause");
    return 0;
}
//默认参数
void myPrint(int x=3)
//void myPrint(int m,int n,int x=3) 如果默认参数出现 后面不允许
{
    cout << x << endl;
 }
//函数占位参数 函数调用时必须写够参数
void function1(int a,int b,int )
{
    cout << "a:" << a <<"b:" << b << endl;
}
void main14()
{
    function1(1, 2, 3);
    myPrint(4);
    return;
}
//默认参数和占位参数在一起

int func2(int a,int b,int =0)
{
    cout << "a:" << a << "b:" << b << endl;
}
void mian()
{
    //func2(1,2);
    func2(1,2,3);
    return;
}
#include 
using namespace std;
// 函数重载
// 名称 参数 返回值(不是判断标准)
void myPrint(int a)
{
    cout << "a: " << a << endl;
}

void myPrint(const char* p)
{
    cout << "p: " << p << endl;
}

void myPrint(int a, int b)
{
    cout << "a: " << a << endl;
    cout << "b: " << b << endl;
}

// 主函数
int main()
{
    myPrint(1);
    myPrint("1111dfs");
    myPrint(1, 3);
    return 0;
}
//函数默认参数和重载在一起
void myfunction(int a, int b, int c = 0)
{
    cout << "a: " << a << "b: " << b << "c: " << c << endl;
}
void myfunction(int a, int b)
{
    cout << "a: " << a << "b: " << b << endl;

}
void myfunction(int a)
{
    cout << "a: " << a  << endl;

}
void main()
{
    //myfunction(1, 2);//出现二义性 不知道调用哪个


   
    return;

}
#include 
using namespace std;
// 函数重载
// 名称 参数 返回值(不是判断标准)
void myPrint(int a)
{
    cout << "a: " << a << endl;
}

void myPrint(const char* p)
{
    cout << "p: " << p << endl;
}

void myPrint(int a, int b)
{
    cout << "a: " << a << endl;
    cout << "b: " << b << endl;
}

// 主函数
int main16()
{
    myPrint(1);
    myPrint("1111dfs");
    myPrint(1, 3);
    return 0;
}
//函数默认参数和重载在一起
void myfunction(int a, int b, int c = 0)
{
    cout << "a: " << a << "b: " << b << "c: " << c << endl;
}
void myfunction(int a, int b)
{
    cout << "a: " << a << "b: " << b << endl;

}
void myfunction(int a)
{
    cout << "a: " << a  << endl;

}
void main17()
{
    //myfunction(1, 2);//出现二义性 不知道调用哪个


   
    return;

}
//函数重载和函数指针在一起
//声明一个函数类型
//typedef void (myTypeFunc)(int a, int b); //myTypeFunc 用来定义函数指针
// myTypeFunc* myfuncp=NULL;//定义一个函数指针 这个指针指向函数入口地址
                                         
//声明一个函数指针类型
typedef void (*myTypeFunc)(int a, int b); //声明了一个指针数据类型 myTypeFunc 用来定义函数指针

// myTypeFunc cp = NULL; 通过函数指针类型 定义了一个指针



//声明一个函数指针变量
//void (* myVarPfunc)(int a, int b);
void myfunc23(int a)
{
    printf("a:%d", a);
}
void myfunc23(char *p)
{
    printf("p:%s", p);
}
void myfunc23(int a,int b)
{
    printf("a:%d", a);
    printf("b:%d", b);
}
void main()
{
  //  myTypeFunc* myfuncp=NULL;//定义一个函数指针 这个指针指向函数入口地址

    myTypeFunc fp= myfunc23;//定义一个函数指针变量
    
    fp(1,3);
}

c++ 156函数_第1张图片
所传的类型不同

你可能感兴趣的:(c++,c++,算法,开发语言)