1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
当我们写完一个程序之后,信心满满地拍下F5。电脑首先会将我们编写的程序编译成它所搭载的芯片所能认识的汇编语言,而后再通过给不同的元件输入或输出高电平、低电平来实现我们程序中所写的功能。而那些不同由I/O口的高电平、低电平所构成的一长串由我们抽象而来的1、0串,则是对机器来说最简单易懂,接近本质的语言,我们称之为——机器语言。
C语言内置的一些预定义符号: __FILE__ //进行编译的源文件所在的地址#define 这是一个功能强大的预处理指令,它可以用来定义标识符,定义宏... 只要你胆子大,你甚至可以在用#define定义一堆东西之后,使用中文来完成编程!白话文不过瘾的话,还可以用文言文——前提是你有这么高的文言文造诣。 同样的,#define也是一个有些鸡肋的东西,它的很多功能实际上有更好的,且没有歧义的替代。 就比如: #define可以定义一些简单的“函数”并且这些“函数”可以绕过C语言那令人头疼的类型检查——至少看起来是这样的——很遗憾,那只是看起来。#define所做的只是给你那些简单的逻辑起了一个‘别号’,当你在程序中写下这个‘别号’时,计算机只是拙劣地将这个逻辑粘贴了过来。 #define sum(a,b) a + b//1c = sum(1,2) * 2;//2c = (1 + 2) * 2; 你以为它的答案是 6 吗?不,它不是,它的答案是 5 。它只是一个拙劣地粘贴。 //3c = 1 + 2 * 2 #define与函数最大地差异便在此体现了。 #undef 如果说#define是一个开始,那么#undef便是它的终结。 骚话就说到这里,这意思表达的已经足够明显了吧? #if #endif 这是一个我个人感觉比注释还好用的一个条件编译。 当#if的判断条件为1的时候,执行其下的指令,直至#endif为止。 通过更改一个宏的值,轻轻松松决定了某块代码的编译与否,这可比ctrl+k+c以及ctrl+k+u舒服方便多了。至少我现在是如此感觉的。 |
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9055 浏览 16 评论
4086 浏览 18 评论
1174浏览 3评论
603浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
596浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2333浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 14:56 , Processed in 1.020553 second(s), Total 76, Slave 57 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号