宏与宏函数
来源:互联网 发布:软件机器码修改 编辑:程序博客网 时间:2024/05/16 11:12
宏与宏函数
#include "stdafx.h"#if 01.宏的本质是,替换2.我们常将短小精悍的函数进行宏化,这样可以嵌入到代码中,减少调用的开销。但是代价就是,编译出的文件可能会变大3.尽量少用宏函数,能看的懂别人写的宏函数即可。C++中的 inline 函数(内联函数)己经取代了宏函数作用#endif//一行如果写不下需要换行写 必须加上\(续行符)来连接,//但是\前面一定不能有空格,否则会出错#define PI 3.141\5926#define M 2+3#define N (2+3)//带参宏(宏函数)#define X(a,b) a*b#define S(a,b) ((a)*(b))//内部括号保证内部优先级 外部括号保证外部优先级//普通函数int func(int i){return i *i;}//宏函数#define SQ(i) ((i)*(i))//取消宏或宏函数//#undef + 宏或宏函数 从此以下都不能用了int _tmain(int argc, _TCHAR* argv[]){printf("%d\n", N * 3);printf("%d\n", M * 3);//没加括号的宏计算时相当于 2+3*3=11printf("%f\n", PI);int a = X(2 + 2, 2 + 3); //相当于 2+2*2+3=9int b = S(2 + 2, 2 + 3); // (2+2)*(2+3)=20printf("a=%d\n", a); printf("b=%d\n", b);printf("===========================================\n");int i = 1;while (i <= 5){printf("%d\n",SQ(i++) ); // printf("%d\n",((i++)*(i++)) );//开始i=1 1*1=1 然后1执行俩个++变为3 3*3=9 3执行俩++变为5 5*5=25//有的环境下会不一样 可能出现2 12 30}printf("===========================================\n");int p = 1;while (p<=5){printf("%d\n", func(p++));}return 0;}
阅读全文
0 0
- 宏与宏函数
- 内联函数 与 宏
- 宏与内联函数
- 宏与内联函数
- 宏与函数
- 内联函数与宏
- 宏与函数
- 宏与内联函数
- C宏与函数
- 宏与内联函数
- 宏与内联函数
- 宏与函数
- 宏与内联函数
- 宏与内联函数
- 宏与内联函数
- 宏与内联函数
- 内联函数与宏
- 宏与函数
- 中国计算机学会YOCSEF TDS《专题探索班》,新一代人工智能的基础与前瞻
- 欢迎使用CSDN-markdown编辑器
- Vue基础(计算属性和观察者)
- IO流中字节流,高效字节流
- js中const,var,let的区别
- 宏与宏函数
- java获取中文汉字的所有拼音代码分享
- Android进阶八:RecyclerView自动滚动
- 字符串删除字符的回文字符串
- 网络安装redhat7.2虚拟机
- 数学建模程序与方法之非线性规划
- 微信APP支付Java服务端
- 【12.12直播】北美KubeCon国内首轮深度解读!
- 条件编译