首页 > 编程语言 >C++宏和函数的比较

C++宏和函数的比较

时间:2024-10-25 13:10:05浏览次数:1  
标签:compare 函数 max void float C++ 比较

在上一篇随笔中,我提到宏和函数是很相似的,那么在这篇中我会通过实例来体会宏和函数的异同。
实例:分别用函数和带参的宏,从三个数中找出最大的数
代码:

点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define Com(a,b,c) {printf("%.3f\n",max(a,max(b,c)));}
void compare(float a,float b,float c);
int main()
{
    float a,b,c;
    cin>>a>>b>>c;
    compare(a,b,c);
    Com(a,b,c);
    return 0;
}
void compare(float a,float b,float c){
    cout<<fixed<<setprecision(3)<<max(a,max(b,c))<<endl;
}
在代码中我们能更直观体会到函数和宏的相似性。同时我们注意到,尽管max(a,b)函数只能比较两个数的大小,但可通过套用变形为max(a,max(b,c))从而达到比较三个数的效果。

标签:compare,函数,max,void,float,C++,比较
From: https://www.cnblogs.com/zczl012/p/18502296

相关文章

  • C++宏的入门
    今天简单使用了宏,也对宏有了一定的了解,见解如下:简单宏的定义:#definePI3.14像上述便是非常简单且便于理解的一个例子,通常将宏的定义置于头文件的引用后。我对宏的理解更像是一个优先级较高的函数,具体可通过下面的一个例子展现:点击查看代码#include<bits/stdc++.h>#define......
  • 护照如何查验真伪?C++护照查验接口示例、护照文字识别、身份验证
    在当下全球化加速、出入境需求激增的背景下,护照查验接口作为提升边检效率和保障国民安全的重要技术,正逐渐受到广泛关注。随着全球旅游业的复苏和国际商务交流的频繁,如何更高效、智能地完成护照查验成为了政府和企业的关键任务。数字化政务正在全球范围内成为趋势,护照查验......
  • C++
    C++C++11using1.相比与typedef,using在定义函数指针时更加直观usingfunc_ptr1=int(*)(int,double);2.using可以为模板起别名template<typenameT>usingmymap=map<int,T>;3.使用using来引入整个命名空间或某个特定的名字,可以简化代码书写usingnamespacestd;......
  • C++中声明和定义的注意事项
    前言:最近学习完C++的一些基本知识之后,开始了C++核心编程内容的学习。学习到了类和对象的部分。其中,在昨天学到友元的时候,遇到了一个问题,我就写了两个类,只不过这次把类的成员函数的实现写在了类外。本来想着的是,反正后面学习会把声明和定义分开写成.h和.cpp文件,就寻思先试试把定......
  • C++左移运算符重载的理解
    最近学习C++学到了运算符重载的部分,大部分运算符重载都就可以实现作为类中成员函数和全局函数进行重载实现,而左移运算符“<<”却只支持全局函数进行重载。这是是为什么呢?我来谈谈我的理解。大家首先随便用cout输出一下,然后点击cout然后右键选择转到声明:我们会看到如下图显示......
  • C++ 内存管理 堆和栈、内存泄漏、内存分配、指针与内存、智能指针、malloc和free、new
    1.堆和栈的区别1.**管理方式**:-**栈**:自动管理。当函数调用时,局部变量会自动分配在栈上。函数执行完毕后,这些变量会自动释放。-**堆**:手动管理。程序员需要使用`new`来在堆上分配内存,并在不再需要时使用`delete`来释放。2.**使用方式和寿命**:-**栈**:用......
  • 中断函数里为什么不能调用printf
    在中断函数中通常不建议调用printf,原因在于printf是一个复杂且可能会引发阻塞的函数。在中断处理程序中调用printf可能导致中断的再次触发,且可能会影响系统性能和实时性,以及引起竞态条件等问题。中断处理是操作系统中的关键机制,它允许硬件设备通知CPU它们需要处理事件。中断函......
  • C++ 好用的包管理工具--vcpkg
    https://blog.csdn.net/lizhichao410/article/details/132339064 背景Windows下开发C/C++程序,少不了编译开源的第三方库,使用这些库开发极大的方便了程序员,使得我们不必重复造轮子。由于开源库绝大部分都来源于Linux系统、将其移植到Windows的VC开发环境下编译比较复......
  • 【32】C++流
    C++流IO: 向设备输入数据和输出数据C++的IO流设备: 文件控制台特定的数据类型(stringstream)c++中,必须通过特定的已经定义好的类, 来处理IO(输入输出)读写文件:文件流文件流: 对文件进行读写操作头文件:  <fstream>类库:   ifstream   对文件输入(读......
  • C++的汉诺塔
    汉诺塔(TowerofHanoi)是一个经典的递归问题。问题的描述如下:有三根杆(通常称为A、B、C),以及一系列大小不同、穿在一根杆上的圆盘。这些圆盘可以滑动到任何一根杆上,但是每次只能移动一个圆盘,且不能将较大的圆盘放在较小的圆盘上。目标是将所有圆盘从杆A移动到杆C。下......