/*******************************************************************
*Author:JYW
*Time:2019_01_25
*Describe:嵌入式学习第一阶段_04_05_06_07
**********************************************************************************************************/
预处理错误:就是对宏和#include的展开;最典型的出错,就是#include出错;
一般来说#include"lib.h"是自定义的,从当前目录下寻找;而#include<reg52.h>是系统的;
使用gcc -I 跟查找的头文件目录可以解决not food问题;
编译错误主要是语法错误;
链接错误,就是在最后打包时出错,原材料不够或者多了, ;
/***********************************************************************************************************************/
预处理:
#include 包含头文件;
#define 宏 ,目的就是替换,不进行语法检测;
#define 宏名 宏体 :#define UCHAR unsigned char ;一个不成文的习惯就是宏名大写;
条件编译:#ifdef #else #endif 在使用中较为频繁;
一般在实际的工作中会有两个版本:一个是调试版本,另一个是发行版本;
维护一套代码,会有不同的效果产生;
;;
预定义宏
__FUNCTION__; 显示出函数名
__FILE__; 显示文件名
__LINE__; 显示行号
宏展开下的#, ##:
#指的是字符串化;
##是连接符号;