预处理命令 || 宏定义 || 带参数的宏定义
#include <stdio.h>//说明:在windows 操作系统和 linux操作系统下,生成源码不一样!!!//#include <windows.h>
//int main() {
// Sleep(5000); //毫秒
// puts("hello, 代止兮~"); //输出
// getchar();
// return 0;
//}#if _WIN32 //如果是windows平台, 就执行 #include <windows.h>
#include <windows.h>
#elif __linux__ //否则判断是不是linux ,如果是linux 就引入<unistd.h>
#include <unistd.h>
#endif
int main() {//不同的平台下调用不同的函数#if _WIN32 //识别windows平台Sleep(5000); //毫秒#elif __linux__ //识别linux平台sleep(5); //秒#endifputs("hello, 代止兮~"); //输出getchar();return 0;
}
#include <stdio.h>
//宏定义 , 宏名 M , 对应的字符串 (n*n+3*n)
//注意:如果宏对应的字符串 有 () , 那么就不能省略
#define M (n*n+3*n)int main(){int sum, n;printf("k=%d", n);printf("Input a number: ");scanf("%d", &n); //n = 3sum = 3*M+4*M+5*M; // 宏展开? 3*(n*n+3*n);+4*(n*n+3*n);+5*(n*n+3*n);printf("sum=%d\n", sum);getchar();getchar();return 0;
}
#include <stdio.h>//说明
//1. MAX 就是带参数的宏
//2. (a,b) 就是形参
//3. (a>b) ? a : b是带参数的宏对应字符串,该字符串中可以使用形参
#define MAX(a,b) (a>b) ? a : b
int main(){int x , y, max;printf("input two numbers: ");scanf("%d %d", &x, &y);//说明//1. MAX(x, y); 调用带参数宏定义//2. 在宏替换时(预处理,由预处理器), 会进行字符串的替换,同时会使用实参, 去替换形参//3. 即MAX(x, y) 宏替换后 (x>y) ? x : ymax = MAX(x, y);printf("max=%d\n", max);getchar();getchar();return 0;
}
#include <stdio.h>
#include <stdlib.h>int SQ(int y){ //函数, 求y的平方return ((y)*(y));
}int main(){int i=1;while(i<=5){printf("%d^2 = %d\n", i-1, SQ(i++)); // i++ ——》 i-1 等价于 i}system("pause");return 0;
}
预处理命令 || 宏定义 || 带参数的宏定义相关推荐
- 定义带参数的宏来求三角形的面积
<程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p241 习题7 13.三角形的面积为,其中sqrt( s * (s-a) (s-b) (s-c) ), ...
- 【C语言】宏定义(不带参数的宏定义和带参数的宏定义)
目录 一.不带参数的宏定义 1.定义 2.#undef 指令取消宏定义 二.带参数的宏定义 1.定义 2.宏定义参数替换的注意事项 三.带参数的宏定义和带参函数的区别 一.不带参数的宏定义 1.定义 ...
- 编译预处理 -- 带参数的宏定义--【原创】
如有转载请注明出处 编译预处理 -- 带参数的宏定义 前面为输出文件,后面为输入文件 gcc -E -o test.i test.c gcc -o test test.i test.c test ...
- python用海伦公式求面积_用带参数的宏定义,通过海伦公式求三角形的面积
要求: 海伦公式: ,其中 ,a,b,c为三角形的三个边.定义两个带参数的宏,一个用来求p,另一个用来求s 题目分析: 首先,题目要求是通过输入三角形的三条边,输出三角形的面积.因为不是任意的三条边都 ...
- 编程题:带参数的宏定义来实现,求圆的周长和面积。
编程题:带参数的宏定义来实现,求圆的周长和面积. #include<stdio.h> #define PI 3.14159 #define L(r) 2*PI*(r) #define S( ...
- mysql宏参数_C语言带参数的宏定义
C语言允许宏带有参数.在宏定义中的参数称为"形式参数",在宏调用中的参数称为"实际参数",这点和函数有些类似. 对带参数的宏,在展开过程中不仅要进行字符串替换, ...
- 如何定义一个带参数的宏
开发中我们经常会遇到一些需要封装起来的简单函数 比如说:有两个数,通过调用一个宏去返回较大的数 或者:通过输入三原色(RGB)的值去输出一个自己的颜色 这中做法比较常用 下面就来说一下这种带参数的宏 ...
- Java 方法的概述-方法的定义-带参数的方法
方法概述 方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集1.方法必须先创建才可以使用,该过程成为方法定义 2.方法创建后并不是直接可以运行的,需要手动使用后才执 ...
- c++ 带参数的宏定义实现反射机制
lua 这种脚本语言用久了,总觉得反射机制就应该理所当然的嵌入在语言特性里. 比如希望根据自己传的类型名变量,动态去 new 一些实例.在 lua ,js 里做起来就非常简单,然而在 c++里面做起来 ...
最新文章
- CSS3 稳固而知新: 居中
- Python将彩色图转换为灰度图
- 成功解决ValueError: Cannot feed value of shape (1, 10, 4) for Tensor Placeholder:0 , which has shape
- pdo mysql分页_php运用PDO连接数据库,实现分页效果
- 砍掉九成代码,重构并简化YOLOv5图像目标检测推理实现
- python sorted下标_Python列表操作最全面总结
- C#的多线程机制探索7
- CMS 和 G1 收集器比较
- invalid use of incomplete type 报
- windwos开机自启动脚本
- JS设计模式——12.装饰者模式
- mysql视图可以完成的操作_MySQL视图操作
- Typinator for mac(打字员)附注册码支持m1
- 20190911每日一句
- 网站抓取精灵V3.0正式版
- 一文讲清楚【KL距离】、【torch.nn.functional.kl_div()】和【torch.nn.KLDivLoss()】的关系
- 网络互联课程设计(校园网和企业网)
- Elasticsearch系列—倒排索引原理
- python测试用例设计方法_功能测试用例设计方法分享
- Qpython教程和软件下载(Android手机学习python的平台利器)