#define及其用法
2024-09-30 15:24:31
#define
在#define中,标准只定义了#和##两种操作。#用来把参数转换成字符串,##则用来连接前后两个参数,把它们变成一个字符 串。
#include<stdio.h>
#define paster(n) printf("token"#n"=%d\n",token##n) int main(int argc,char *argv[])
{
int token9=;
paster();
return ;
}
输出为:token =
无参宏定义的一般形式为:#define 标识符 字符串
其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令。“define”为宏定义命令。“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。
例如: #define M (a+b) 它的作用是指定标识符M来代替表达式(a+b)。在编写源程序时,所有的(a+b)都可由M代替,而对源程序作编译时,将先由预处理程序进行宏 代换,即用(a+b)表达式去置换所有的宏名M,然后再进行编译。
#include<stdio.h>
#defineM(a+b) int main(intargc,char*argv[])
{
ints,a,b;
printf("inputnumbera&b:");
scanf("%d%d",&a,&b);
s=M*M;
printf("s=%d\n",s);
}
带参的宏定义一般形式为: #define 宏名(形参表) 字符串
#include<stdio.h>
#define MAX(a,b)((a>b)?(a):(b)) int main(intargc,char*argv[])
{
intx,y,max;
printf("inputtwonumbers:");
scanf("%d%d",&x,&y);
max=MAX(x,y);
printf("max=%d\n",max);
return0;
}
最新文章
- Android 热修复技术(1)---原理
- js 数组遍历for..in弊端
- .NET:序列化和反序列化
- C语言 百炼成钢16
- 32位Ubuntu12.04搭建Hadoop2.5.1完全分布式环境
- ThinkPhp学习12
- Nuget常用命令操作
- Openstack_O版(otaka)部署_Nova部署
- ios7内购、Game Center 实现 in-App Purchases &; Game Center
- docker容器启动haproxy
- 解决IDEA创建多模块项目找不到创建class类的问题
- 面向对象DAO模式
- Mysql 索引问题-日期索引使用
- Java容器解析系列(6) Queue Deque AbstractQueue 详解
- 使用SQL Server 的CDC功能实现数据变更捕获
- JavaScript -基础- 函数与对象(二)String
- ZH奶酪:Python中zip函数的使用方法
- vuex入门教程和思考
- 《驱蚊神器v1.0》android应用 赶走那些烦人的臭蚊子
- (第十周)新NABCD
热门文章
- 初学总结--------Java修饰符与修饰关键字(且叫修饰关键字)
- Java的对象和类
- Nginx: 解决connect() to xxxx failed (13: Permission denied) while connecting to upstream的问题
- Android Studio一些简单设置
- 同一个页面多个html、body标签
- 使用python转换markdown to html
- iOS学习之动画效果的实现
- JNI/NDK开发指南(2)
- MVC 下 JsonResult 的使用方法(JsonRequestBehavior.AllowGet)<;转>;
- [读书笔记]流畅的Python(Fluent Python)