当前位置: 首页 > news >正文

c++ 156函数

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);
}

在这里插入图片描述
所传的类型不同


http://www.mrgr.cn/news/19216.html

相关文章:

  • MySQL高阶语句(一)
  • DrissionPage设置启动浏览器为edge
  • C高级编程 第十四天
  • 编译工具链【持续更新中】
  • mac 安装brew并配置国内源
  • Linux【1】基础
  • windows11交叉编译ffmpeg的android版本库
  • AFFiNE简介
  • 深入理解 JavaScript DOM 操作
  • LLM agentic模式之multi-agent: ChatDev,MetaGPT, AutoGen思路
  • Xilinx系FPGA学习笔记(三)Vivado的仿真及ILA使用
  • 科研绘图系列:python语言制标准差的直方图(STD histogram plot)
  • 域名证书,泛域名证书,sni
  • 解释 JVM 的内存模型(堆、栈、方法区等),并简述如何通过调整 JVM 参数来优化应用程序的性能?
  • 深度学习从入门到精通——yolov3算法介绍
  • Datawhale X李宏毅苹果书进阶 AI夏今营 task03学习笔记
  • 【重学 MySQL】二、MySQL 介绍
  • x264 编码优化论文整理【持续更新】
  • 【Spring Boot 3】【Web】统一处理 HTTP 请求体
  • STM32单片机 ADC模数转换器