OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3904|回复: 4

被注释的程序不会烧录进芯片占内存

[复制链接]

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-10-28
在线时间
0 小时
发表于 2015-11-12 10:15:10 | 显示全部楼层 |阅读模式
5金钱
那么#if 0  下面的程序会吗?????

最佳答案

查看完整内容[请看2#楼]

不会,在编译的时候,编译器就默认#if 0 到 #endif间的程序不需要编译,自然就不会下载到芯片中。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

538

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3371
金钱
3371
注册时间
2015-1-7
在线时间
794 小时
发表于 2015-11-12 10:15:11 | 显示全部楼层
不会,在编译的时候,编译器就默认#if 0 到 #endif间的程序不需要编译,自然就不会下载到芯片中。
机器生汇编,汇编生B,B生C,C生万物.... 经过长期对C语言的研究,目前只有两个方面不懂:这也不懂,那也不懂
https://github.com/ianhom
回复

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-10-28
在线时间
0 小时
 楼主| 发表于 2015-11-12 10:37:58 | 显示全部楼层
回复【2楼】ianhom:
---------------------------------
嗯,懂了,只要不被编译的就不会下载这样理解可以吧
回复

使用道具 举报

9

主题

538

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3371
金钱
3371
注册时间
2015-1-7
在线时间
794 小时
发表于 2015-11-12 13:22:15 | 显示全部楼层
回复【3楼】路边沾点油:
---------------------------------
可以的,其实整个编译的过程一般分为:
预处理:宏定义替换,条件编译选择(就是你这里的#if 0)等。
编译:将预处理过后的C语言编译成汇编语言。
汇编:将汇编语言转换成机器码。
链接:将各个模块或库的汇编后文件链接到一起,形成最终的hex或bin之类的下载到芯片里的文件。

所以在预处理阶段,#if 0后面的c语言代码就不会被编译成汇编,也不会被汇编成机器码,也就不会被链接到下载到芯片的文件中,也就不会下载到芯片中。
机器生汇编,汇编生B,B生C,C生万物.... 经过长期对C语言的研究,目前只有两个方面不懂:这也不懂,那也不懂
https://github.com/ianhom
回复

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-10-28
在线时间
0 小时
 楼主| 发表于 2015-11-12 14:41:50 | 显示全部楼层
回复【4楼】ianhom:
---------------------------------
很详细,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 02:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表