inline内联函数
#include<iostream>
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 <iostream>
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 <iostream>
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);
}
所传的类型不同