你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

私有定义 private define

[复制链接]
alicekuonji 提问时间:2020-6-13 08:18 /
cube生成的main文件里面有private macro private variables private define这些用户代码区,搜了一下macro是宏定义,variables是变量,那define是什么

评分

参与人数 1 ST金币 +5 收起 理由
STMCU + 5

查看全部评分

收藏 评论3 发布时间:2020-6-13 08:18

举报

3个回答
lebment 回答时间:2020-6-14 11:21:48
cubemx生成代码,用户也就是我们STM32开发者,把你#define的东西可以放在注释了的privite define那一行里面,也可以随便放哪,只要你放在USER CODE 注释行里面。你说的东西是在main.c,主要是方便我们规范化编程。

评分

参与人数 1ST金币 +5 蝴蝶豆 +3 收起 理由
STMCU + 5 + 3

查看全部评分

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

评分

参与人数 1ST金币 +5 蝴蝶豆 +3 收起 理由
STMCU + 5 + 3

查看全部评分

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蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版