文档章节

C语言之“宏”

空空-Renzo
 空空-Renzo
发布于 2013/06/16 12:37
字数 287
阅读 238
收藏 12

    宏定义(#define)除了定义常数外,也常做指令的宏定义。

    定义宏常数#define DEBUG;#define MAX_STR_LEN 1024

    补充:在C中也可以使用const来定义常数,如:“const int maxStrLen = 1024;”。const所作的常数声明和一般变量相同,都是使用堆栈;而用#define所定义的常数即为真正的常数。理论上来说,用#define声明常数会较快些,因为是在编译阶段已经替换

    定义宏指令:#define MAX(a,b)  (a)>(b)?(a):(b);#define DEBUG(msg) printf("%s:%d %s\n",__FILE__,__LINE__,msg)

    说明:使用#define定义的宏指令由于减少了参数的传递和避免分支流程,会让程序比使用小而多量的函数调用较为有效率。

    “\","#","#@"和"##":在define定义时,斜杠(“\")是用来续行的;”#“是用来把参数转换为字符串,是给参数加上双引号;”##“是用来连接前后两个参数,把他们变成一个字符串。”#@“是给参数加上单引号。

    #define CONN(x,y) x##y;    #define TOCHAR(c) #@c;    #define TOSTRING(s) #s;

以上内容搜集于网络,本人仅是整理 @

 

© 著作权归作者所有

共有 人打赏支持
空空-Renzo
粉丝 0
博文 6
码字总数 20511
作品 0
南京
项目经理
私信 提问
C语言编程学习—宏定义的一些使用技巧

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
03/24
0
0
C语言中的#,##

C语言中的#,## 今天在分析一份源码的时候遇到了如下代码: 觉得其中的##很有意思,于是就将这个知识点整理一下。#和##都是预处理指令,我们先看#。 #用来把参数转换成字符串,请看下面的两个...

长平狐
2013/06/03
47
0
c语言编译预处理和条件编译执行过程的理解

  在C语言的程序中可包括各种以符号#开头的编译指令,这些指令称为预处理命令。预处理命令属于C语言编译器,而不是C语言的组成部分。通过预处理命令可扩展C语言程序设计的环境。 一.预处理...

文艺小青年
2017/10/12
0
0
最丑陋的 C 语言特性:tgmath.h

是一个在C99引入的,标准C语言库提供的头文件。对于Fortran编写的数值软件,它向C语言提供更加简洁的接口。 跟C语言不同,Fortran提供了编写在该语言内部的“固有函数”,其表现得更像操作符...

oschina
2013/10/11
7.1K
18
不可小看的技术——C语言编程中的“宏”

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
03/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

起薪2万的爬虫工程师,Python需要学到什么程度才可以就业?

爬虫工程师的的薪资为20K起,当然,因为大数据,薪资也将一路上扬。那么,Python需要学到什么程度呢?今天我们来看看3位前辈的回答。 1、前段时间快要毕业,而我又不想找自己的老本行Java开发...

糖宝lsh
18分钟前
1
0
携手开发者共建云生态 首届腾讯云+社区开发者大会在京举办

本文由云+社区发表 北京时间12月15日,由腾讯云主办,极客邦科技、微信、腾讯TEG协办的首届腾讯云+社区开发者大会在北京朝阳悠唐皇冠假日酒店举办。在会上,腾讯云发布了重磅产品开发者平台以...

腾讯云加社区
38分钟前
1
0
人工智能时代员工如何证明其IT工作价值

机器人可以取代你的工作吗?你能帮助机器人完成它的工作吗?如果你正在考虑自己的职业生涯以及今后将如何发展,那么应该询问自己这些问题了。 机器人可以取代你的工作吗?你能帮助机器人完成它的...

Linux就该这么学
40分钟前
2
0
CPU性能过剩提升乏力影响未来行业发展吗?

虽然CPU仍然在不断发展,但是它的性能已经不再仅仅受限于单个处理器类型或制造工艺上了。和过去相比,CPU性能提升的步伐明显放缓了,接下来怎么办,成为横亘在整个行业面前的大问题。 自201...

linuxCool
51分钟前
2
0
使用Autowired和Qualifier解决多个相同类型的bean如何共存的问题

注意: 实现类UserServiceImpl,MyUserServiceImpl 需要区分:@Service("userServicel") @Service("myUserService") https://blog.csdn.net/russle/article/details/80287763......

qimh
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部