摘要:
带参数的宏和函数很相似,但有本质上的区别:宏展开仅仅是字符串的替换,不会对表达式进行计算;宏在编译之前就被处理掉了,它没有机会参与编译,也不会占用内存。而函数是一段可以重复使用的代码,会被编译,会给它分配内存,每次调用函数,就是执行这块内存中的代码。 【示例①】用函数计算平方值。 #include int SQ(int y){ return ((y)*(y)); } int main()... 阅读全文
posted @ 2018-01-05 17:18
乡下菜农
阅读(7546)
评论(0)
推荐(0)
摘要:
C语言宏定义和宏定义函数 宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。 我们来看一个例子,比较两个数或者表达式大小,首先我们把它写成宏定义: #define MAX( a, b) (... 阅读全文
posted @ 2018-01-05 17:14
乡下菜农
阅读(65537)
评论(1)
推荐(6)
摘要:
宏、函数、宏函数的区别 先说宏和函数的区别: 1. 宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换),而函数的参数的传递,参数是有数据类型的,可以是各种各样的类型. 2. 宏的参数替换是不经计算而直接处理的,而函数调用是将实参的值传递给形参,既然说是值,自然是计算得来的. 3. 宏在编译之前进行,即先用宏体替换宏名,然后再编译的,而函数显然是编译之后,在执行时,才调用的.... 阅读全文
posted @ 2018-01-05 17:13
乡下菜农
阅读(11367)
评论(0)
推荐(1)
摘要:
在C及C++语言中允许用一个标识符来表示一个字符串,称为宏,该字符串可以是常数、表达式、格式串等。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动完成的。若字符串是表达式,我们称之为函数式宏定义,那函数式宏定义与普通函数有什么区别呢?我们以下面两行代码为例,展开描述: 函... 阅读全文
posted @ 2018-01-05 17:10
乡下菜农
阅读(908)
评论(0)
推荐(0)
摘要:
#define宏定义在C系开发中可以说占有举足轻重的作用。底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行。而在更高层级进行开发时,我们会将更多的重心放在业务逻辑上,似乎对宏的使用和依赖并不多。但是使用宏定义的好处是不言自明的,在节省工作量 阅读全文
posted @ 2018-01-05 17:04
乡下菜农
阅读(280)
评论(0)
推荐(0)
摘要:
转载地址 : http://blog.sina.com.cn/s/blog_4ca9ceef0101isv5.html 阅读全文
posted @ 2018-01-05 17:00
乡下菜农
阅读(445)
评论(0)
推荐(0)
摘要:
【转】C语言中DEFINE简介及多行宏定义 要写好C语言,漂亮的宏定义是非常重要的。宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。 我们来看一个例子,比较两个数或者表达式大小,首先我们把它写成宏... 阅读全文
posted @ 2018-01-05 16:54
乡下菜农
阅读(4089)
评论(0)
推荐(0)
摘要:
1. 利用define来定义 数值宏常量 #define 宏定义是个演技非常高超的替身演员,但也会经常耍大牌的,所以我们用它要慎之又慎。它可以出现在代码的任何地方,从本行宏定义开始,以后的代码就就都认识这个宏了;也可以把任何东西定义成宏。因为编译器会在预编译的时候用真身替换替身,而在我们的代码里面却 阅读全文
posted @ 2018-01-05 16:45
乡下菜农
阅读(537)
评论(0)
推荐(0)
摘要:
#define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但在学习时往往不能理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对C语言的学习很不利。下面将分别对基本用法和特殊做详细介绍。 一、#define的基本用法 1 #define... 阅读全文
posted @ 2018-01-05 16:40
乡下菜农
阅读(9364)
评论(0)
推荐(0)
摘要:
单片机的C语言中位操作用法 在对单处机进行编程的过程中,对位的操作是经常遇到的。C51对位的操控能力是非常强大 的。从这一点上,就可以看出C不光具有高级语言的灵活性,又有低级语言贴近硬件的特点。 这也是在各个领域中都可以看到C的重要原因。在这一节中将详细讲解C51中的位操作及其应 用。 1、位运算符 C51提供了几种位操作符,如下表所示: 运算符 含义 运算符 含义 & 按位与 ~ 取反 |... 阅读全文
posted @ 2018-01-05 16:10
乡下菜农
阅读(751)
评论(0)
推荐(0)
摘要:
在对单处机进行编程的过程中,对位的操作是经常遇到的。C51对位的操控能力是非常强大的。从这一点上,就可以看出C不光具有高级语言的灵活性,又有低级语言贴近硬件的特点。这也是在各个领域中都可以看到C的重要原因。在这一节中将详细讲解C51中的位操作及其应用。 1、位运算符 C51提供了几种位操作符,如下表所示: 运算符 含义 运算符 含义 & 按位与 ~ 取反 | 按位或 > 右移 1)“按位与”运算... 阅读全文
posted @ 2018-01-05 16:05
乡下菜农
阅读(4855)
评论(0)
推荐(0)
摘要:
高质量C++/C编程指南 目 录 前 言... 6 第1章 文件结构... 11 1.1 版权和版本的声明... 11 1.2 头文件的结构... 12 1.3 定义文件的结构... 13 1.4 头文件的作用... 13 1.5 目录结构... 14 第2章 程序的版式... 15 2.1 空行... 15 2.2 代码行... 16 2.3 代码行内的空格... ... 阅读全文
posted @ 2018-01-05 15:39
乡下菜农
阅读(5777)
评论(0)
推荐(0)
摘要:
一段完美的代码不仅在于找到一个给定的问题的解决方案,但在它的简单性,有效性,紧凑性和效率(内存)。设计的代码比实际执行更难。因此,每一个程序员当用C语言开发时,都应该保持这些基本的东西在头脑中。本文向你介绍规范你的C代码的几种方法。 1、在可能的情况下使用typedef替代macro.当然有时候你无法避免macro,但是typedef更好。 typedef int* INT_PTR; INT... 阅读全文
posted @ 2018-01-05 15:34
乡下菜农
阅读(5326)
评论(0)
推荐(0)
摘要:
如何写出高效率稳定的单片机代码? 由于单片机的性能同电脑的性能是天渊之别的,无论从空间资源上、内存资源、工作频率,都是无法与之比较的。PC 机编程基本上不用考虑空间的占用、内存的占用的问题,最终目的就是实现功能就可以了。对于单片机来说就截然不同了,一般的单片机的Flash 和Ram 的资源是以KB 来衡量的,可想而知,单片机的资源是少得可怜,为此我们必须想法设法榨尽其所有资源,将它的性能发挥到... 阅读全文
posted @ 2018-01-05 08:48
乡下菜农
阅读(927)
评论(0)
推荐(0)

浙公网安备 33010602011771号