博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
'#' 和 '##' 的作用
阅读量:3524 次
发布时间:2019-05-20

本文共 1056 字,大约阅读时间需要 3 分钟。

#cat pre.c

#include 
/* * 宏定义中, *# 宏函数参数字符串化 *## 用来连接两个标识符 * (通常其中一个标识符是宏函数的参数)为一个标识符 **/#define PRINT(x) printf(#x" = %d\n", x)#define GENERATOR(type) \ type max_##type(type a, type b)\ {\ return a > b ? a : b; \ }GENERATOR(int)GENERATOR(double)GENERATOR(char)int main(){ int x = 100; printf("x = %d\n", x); int y = 200; printf("y = %d\n", y); printf("---------------\n"); PRINT(x); PRINT(y);// ==> printf("y""=%d\n", y); printf("max_int(10, 20) = %d\n", max_int(10, 20)); printf("max_double(10.3, 20.4) = %g\n", max_double(10.3, 20.4));}

#gcc -E pre.c | tail -20

# 2 "pre.c" 2# 15 "pre.c"int max_int(int a, int b) { return a > b ? a : b; }double max_double(double a, double b) { return a > b ? a : b; }char max_char(char a, char b) { return a > b ? a : b; }int main(){ int x = 100; printf("x = %d\n", x); int y = 200; printf("y = %d\n", y); printf("---------------\n"); printf("x"" = %d\n", x); printf("y"" = %d\n", y); printf("max_int(10, 20) = %d\n", max_int(10, 20)); printf("max_double(10.3, 20.4) = %g\n", max_double(10.3, 20.4));}

 

 

 

转载地址:http://uxuhj.baihongyu.com/

你可能感兴趣的文章
Druid的Web页面使用
查看>>
Scala-HelloWorld
查看>>
Scala-IDEA中环境部署
查看>>
Scala-HelloWorld解析
查看>>
Scala-变量和数据类型
查看>>
Scala-流程控制
查看>>
Scala-面向对象后章
查看>>
iOS蓝牙原生封装,助力智能硬件开发
查看>>
iOS 代码的Taste(品位)
查看>>
iOS开发代码规范
查看>>
iOS组件化实践(基于CocoaPods)
查看>>
【iOS学习】RxSwift从零入手 - 介绍
查看>>
数据结构之栈
查看>>
Elastic Stack简介
查看>>
关于deepin系统安装design compiler的问题解答
查看>>
Java Agent简介及使用Byte Buddy和AspectJ LTW监控方法执行耗时
查看>>
记录一下最近的学习经历
查看>>
hadoop3.0+spark2.0两台云服务器集群环境配置。
查看>>
记第一次面试经历
查看>>
网站实现qq登录(springboot后台)
查看>>