alicekuonji 发表于 2020-6-13 08:18:47

私有定义 private define

cube生成的main文件里面有private macro private variables private define这些用户代码区,搜了一下macro是宏定义,variables是变量,那define是什么

lebment 发表于 2020-6-14 11:21:48

cubemx生成代码,用户也就是我们STM32开发者,把你#define的东西可以放在注释了的privite define那一行里面,也可以随便放哪,只要你放在USER CODE 注释行里面。你说的东西是在main.c,主要是方便我们规范化编程。

发表于 2020-6-14 20:37:41

#define又称宏定义,标识符为所定义的宏名,简称宏。标识符的命名规则与前面讲的变量的命名规则是一样的。#define 的功能是将标识符定义为其后的常量。一经定义,程序中就可以直接用标识符来表示这个常量。是不是与定义变量类似?但是要区分开!变量名表示的是一个变量,但宏名表示的是一个常量。可以给变量赋值,但绝不能给常量赋值。

fulin.work 发表于 2020-6-17 17:27:31

#define,宏定义,一般在C语言程序中用作“常量”的设置,在预处理的时候生效。
一般用法:
#define 标识符 字符串
简单解释是定义了一个“标识符”,这个标识符代表的含义就是“字符串”。之所以强调是在预处理的时候生效,是因为编译器,作预处理的时候,会将所有“标识符”替换为“字符串”,然后进行编译。
这样就会出现这种可能:
#define PI 3.14    //定义PI这个标识符,字符串是3.14
......
s=PI*R^2;         //语句1
那么编译器在预处理会把语句1,替换为:
s=3.14*R^2;
这样当然是没问题的。
但是如果又额外定义了一个“PI1”的变量
#define PI 3.14    //定义PI这个标识符,字符串是3.14
......
s=PI*R^2;         //语句1
s1=PI1*R^2      //语句2
猜猜会发生什么?
页: [1]
查看完整版本: 私有定义 private define