不用对整个程序进行修改,只修改宏定义的字符串即可,而且当常量比较长时, 我们可以用较短的有意义的标识符来写程序,这样更方便一些(特别当跨平台的时候,要修改程序一些参数的时候,用宏定义的话,只需要修改宏定义的宏名就可以代表修改了整个程序里面用到这个宏名,就不用一个个去改了,极大的提升了工作效率!)。 2、提高程序的运行效率
你定义了。在程序中是不能改变的。只能在定义的地方修改。程序在预处理期间进行值替换。
使用简单宏定义可用宏代替一个在程序中经常使用的常量,这样在将该常量改变时,不用对整个程序进行修改,只修改宏定义的字符串即可,而且当常量比较长时, 我们可以用较短的有意义的标识符来写程序,这样更方便一些。我们所说的常量改变不是在程序运行期间改变,而是在编程期间的修改,举一个大家比较熟悉的例 子,圆周率π...
一、修改宏定义1实现控制功能。宏定义1所用到控制端子如下,5号端子实现正转控制,6号端子实现反转控制,7号端子为应答故障,16号端子实现固定转速值3控制,17号端子为固定转速值4控制。宏定义1实现的是正反转,同时每个方向有两段转速。现在宏定义1实现的功能与想要实现的功能相比,差一段速度。这时就可以修改7号端子...
需要注意的是,使用 const 关键字定义的常量是只读的,不能修改其值。此外,const 常量定义在编译时会进行类型检查,能够提前检测出类型不匹配的错误,从而避免一些隐患。 与#define 宏定义相比,使用 const 定义常量的优点在于类型安全,具有更好的可读性和可维护性。
●#define---定义宏和标识符常量 ●#include---头文件的包含 ●#pragma 对这些预处理指令都是在预处理阶段执行的。 📖#define 🔖#define定义标识符 语法: 实例: #define定义标识符的时候,要不要在最后加;?比如: 建议不要加上;,这样容易导致问题,比如下面的场景: ●情景...
可以修改,但是修改完成后必须重新编译才可以生效
insert ( a=1, b=2;) 就有问题了: 预处理器会提示出错: 函数宏的参数个数不匹配. 预处理器把","视为参数间的分隔符. insert ((a=1, b=2;)) 可解决上述问题. 在定义和调用函数宏时候, 要注意一些问题: 1, 我们经常用{}来引用函数宏被定义的内容, 这就要注意调用这个函数宏时的";"问题. ...
C语言预处理是C语言编译过程的一个阶段,它在编译之前对源代码进行一系列的处理操作,包括宏替换、文件包含、条件编译等,最终生成经过预处理的代码,然后再进行编译。 C语言预处理的主要功能有: 宏替换:通过使用#define定义宏,可以将一段代码或表达式抽象成一个标识符,在编译时将标识符替换成对应的代码或表达式。