标题:
C语言带#号的编译预处理命令和typedef类型名重定义
[打印本页]
作者:
qiushuliang
时间:
2022-6-1 10:12
标题:
C语言带#号的编译预处理命令和typedef类型名重定义
#define 宏名 字符串
以一个宏名称来代表字符串,即当C语言程序中任何地方使用到宏名称时,则将以所代表的字符串来代替。宏定义的一般是常数或者表达式常数项,不是变量。
用宏定义有什么好处呢?
1.如C语言程序中多处 引用某一常数量,可以用宏来定义,便于程序修改,维护时修改宏名即可完成所有常数量的修改。
例:
#define CLOCK_BASE 1 //程序编译时会有把程序中所有用CLOCK_BASE 表示的地方,替换成常数 1
#define CLOCK_40MS (65535-40000*CLOCK_BASE) // 表达式
#define LED_ON ( ) RB1=1
#define LED_OFF ( ) RB1=0
复制代码
条件编译
#if 表达式
#else
#endif
例1:
#if 0 //0永远不成立,编译#else 后面的代码
P1 = P1 | 0XFE ;
keyvalue = P1 & 0XFE ;
#else
P1 = P1 | 0X7E ;
keyvalue = P1 & 0X7E ;
#endif
复制代码
typedef 重定义类型名
typedef unsigned int u16 ;
typedef unsigned char u8 ;
void typedef Demo1 (void)
{
Bool j ;
j=0 ;
}
复制代码
#ifndef 宏名
# ifndef PWM //如果PWM没有被定义过,则编译下面的代码
#define PWM
#define SUCCESS 0
#define FAILURE 1
#endif
复制代码
有人说 : 程序=数据结构+算法,C语言程序学到这里还没有正真的开始,一个用C语言编写的单片机成品,打开电源时MCU执行的第一个程序是从main()这个函数开始的,在程序中重复执行循环,可以让MCU不断的轮询外部状态,以进行实时处理。C语言程序往往在编写程序前要先指定头文件,
#include 文件名.h,因为头文件里面定义了很多单片机的公共变量及函数,必须声明成外部的(extern),以利其他模块和函数使用。下节从点亮一颗LED灯开始,说明单片机程序是如何运行起来的。
作者:
a399288395
时间:
2022-6-2 08:44
这个资料挺好, 对于新手很有帮助,
作者:
showlight
时间:
2022-8-7 21:28
void typedef Demo1 (void)
{
Bool j ;
j=0 ;
}
这个代码 运行不了, 是我的机子出什么 问题了吗?
作者:
showlight
时间:
2022-8-7 21:35
这个资料很不错,可就是我不会。
作者:
qiushuliang
时间:
2022-8-26 11:28
showlight 发表于 2022-8-7 21:28
void typedef Demo1 (void)
{
Bool j ;
typedef bit Bool; #类型名重定义
void TypedefDemo1(void) #更正一下错误typedef Demo1 改写成 TypedefDemo1
{
Bool j;
j = 0;
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1