宏在使用过程余函数的区别<1>


#include<stdio.h>
#define MAX(X,Y) ((X)>(Y)?(X):(Y))
int max(int x, int y)
{
return x > y ? x : y;
}
int main()
{
int a = 10;
int b = 20;

int ret1 = MAX(a++, b++);//宏会直接把定义的替换过来

//((a++)>(b++)?(a++):(b++))会进行一系列的运算。

此刻算完后a=11.b=22,ret=21

int ret2 = max(a++, b++);//函数会把值(上面运算后的值)传过去在函数内部进行运算。

此刻运算后a=12,b=23,ret=22

printf("a=%d b=%d ret1=%d ret2=%d", a, b, ret1,ret2);

输出结果
a=12,b=23,ret1=21,ret2=22
.....未完待续尽请期待
时间: 2024-11-05 14:55:26

宏在使用过程余函数的区别<1>的相关文章

[转]宏定义和常量定义的区别

1.效果-<高质量C++/C编程指南> C++ 语言可以用const 来定义常量,也可以用#define 来定义常量.但是前者比后者有更多的优点:(1) const 常量有数据类型,而宏常量没有数据类型.编译器可以对前者进行类型安全检查.而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误(边际效应).(2) 有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试.规则5-2-1:在C++ 程序中只使用const 常量而不使用宏常量,即cons

HTTP请求响应过程 与HTTPS区别

原文:HTTP请求响应过程 与HTTPS区别 HTTP协议学习笔记,基础,干货 HTTP协议 HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本. 服务器按照一定规则,发送到客户端(一般是浏览器)的传送通信协议.与之类似的还有文件传送协议(file transfer protocol,FTP),简单邮件传送协议(simple mail ttransfer protocol,SMTP)等. HTTP是在七层网络模型中的应用层的协议,由发送请求和接受响应构成,是一个标准的客户端服务器模型.

C++内联函数、宏定义和普通函数的区别

C++内联函数.宏定义和普通函数的区别? 宏定义:在预处理阶段进行简单的文本替换,不会进行参数类型检查: 内联函数:在编译器的时候进行代码插入,编译器会在每次调用内联函数的地方直接将内联函数的内容展开,这样可以省去函数压栈和出站的开销提高效率.会进行参数                  类型检查: 普通函数:在函数调用时,跳转到函数地址执行代码: 原文地址:https://www.cnblogs.com/dingou/p/10549225.html

iOS define 宏定义 和 const定义常量区别

const   const 是c++中的修饰符.  c++中常用来定义常量,修饰左值. #define 宏定义语句, 在预处理阶段直接做文本替换,不做类型检查. 它们之间的最大区别: 1.  对于const 变量,系统只给了一个相应的内存地址,而#define则是给出了一个立即数.因为const变量是存放在内存的静态区域中,所以在程序运行过程中const变量只有一个拷贝,而#define 所定义的宏变量却有多个拷贝,所以宏在程序运行过程中所消耗的内存要比const变量的大得多.#define所定

vs2008中:程序调试的时候逐语句和逐过程有什么区别?

逐语句,就是每次执行一行语句,如果碰到函数调用,它就会进入到函数里面. 逐过程,碰到函数时,不进入函数,把函数调用当成一条语句执行. 跳出,是当你进入到函数内,跳出可以让你直接执行函数内剩余的语句,直到返回到该函数被调用时的后面的语句处. 简单例子: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class

SQL嵌套子查询和相关子查询的执行过程有什么区别(推荐)

SQLServer子查询可以分为 相关子查询 和 嵌套子查询 两类.前提, 假设Books表如下: 类编号 图书名 出版社 价格 -------------------------------------------------------- 2 c#高级应用 圣通出版 23.00 2 Jsp开发应用 机械出版社 45.00 3 高等数学 济南出版社 25.00 3 疯狂英语 清华大学出版社 32.00 嵌套子查询的执行不依赖与外部的查询. 执行过程: (1)执行子查询,其结果不被显示,而是传递

Freemarker宏和函数的用法和区别

1.宏(macro) 写法:<#macro page url page maskSize=5>    <#if (number == pages)> <li><a href="javascript:void(0);">下一页</a></li> <li><a href="javascript:void(0);">尾页</a></li> <#el

宏定义 #define与typedef的区别。

#include <stdio.h> #define TP1 char* typedef char*  TP2; int main(void){    TP1 a,b;    TP2 x,y; printf("a=>%d,b=>%d\n",sizeof(a),sizeof(b));    printf("x=>%d,y=>%d\n",sizeof(x),sizeof(y));

外包过程与采购过程的区别与联系

笔者发现,一些组织和个人忽视了外包过程和采购过程之间的区别,常把两者混为一谈.有的在选择.评价和重新评价供方时,也将外包过程纳入,并写入同样格式的质量记录:有的甚至将组织的其他外包过程授权采购部门负责实施.这些做法不妥. ISO9001:2008标准在"4.1总要求"中提出对外包过程的要求,而没有将其放到"7.4.1采购过程"中,可见两者有期差异性.这表明:标准对采购的要求,不能完全涵盖对外包过程的要求.一些外包过程(如产品的制造过程)的控制和管理虽然与采购过程的要