define – 太极创客 |
您所在的位置:网站首页 › 原神水系boss › define – 太极创客 |
说明
#define宏定义 define是C语言中的预处理命令,它用于宏定义,可以提高源代码的可读性并且为编程提供方便。要解释define的用途,首先要了解预处理命令的概念。 所谓预处理是指在进行编译之前所作的工作。预处理是C语言的一个重要功能,它由预处理程序负责完成。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,预处理完毕后自动进入对源程序的编译。 预处理命令以“#”号开头,如#include(包含命令),#define(宏定义命令)等。预处理命令一般放在源文件的开头部分,也称为预处理部分。 在C或C++语言源程序中允许用一个标识符来表示一个字符串,称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动完成的。 在C或C++语言中,“宏”分为有参数和无参数两种。 无参数宏定义举例示例: [c highlight=”1, 4, 8, 10″] #define ledPin 13 void setup() { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(ledPin, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } [/c] 在以上示例程序中: 第1行语句#define ledPin 13将宏ledPin定义为13 第4行语句pinMode(ledPin, OUTPUT);进行宏调用操作,用13去代替ledPin。经预处理宏展开后的语句为: pinMode(13, OUTPUT); 第8行语句digitalWrite(ledPin, HIGH);进行宏调用操作,用13去代替ledPin。经预处理宏展开后的语句为: digitalWrite(13, HIGH); 第10行语句digitalWrite(ledPin, LOW);进行宏调用操作,用13去代替ledPin。经预处理宏展开后的语句为: digitalWrite(13, LOW); 提示 #define语句的后面没有分号。如果你加了一个分号”;”编译器将会报错。如以下程序: #define ledPin 3; //本语句使用分号是错误的 另外在使用define时使用等号也会产生错误。如以下程序: #define ledPin = 3 //本语句使用等号是错误的 带参数宏定义C语言允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。对带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参。 带参数宏定义举例[c highlight=”1, 5″] #define M(y) y*y+3*y int k; void setup() { k=M(5); Serial.begin(9600); } void loop() { Serial.println(k); } [/c] 在以上示例程序中, 第1行语句#define M(y) y*y+3*y将宏M(y)定义为y*y+3*y 第5行语句宏调用时,用实参5去代替形参y,经预处理宏展开后的语句为: k=5*5+3*5 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |