C语言内容补充

一,位操作

 二,define 宏定义

1,#define 标识符 字符串

2,当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。

 #ifdef 标识符
程序段 1
#else
程序段 2
#endif

3,

#ifndef  
#define 

 

#endif 

三,extern 变量声明

C 语言中 extern 可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。

例:

u8 id;//定义只允许一次
main()
{
id=1;
printf("d%",id);//id=1
test();
printf("d%",id);//id=2
}

 在 Main.c 定义的全局变量 id, id 的初始化都是在 Main.c 里面进行的。

在test.c的 changeId(void)函数中使用变量id,这个时候我们就需要在test.c里面去申明变量 id 是外部定义的

extern u8 id;//申明变量 id 是在外部定义的,申明可以在很多个文件中进行
void test(void){
id=2;
}

在 test.c 中申明变量 id 在外部定义,然后在 test.c 中就可以使用变量 id 了。

四,typedef 类型别名  

typedef  unsigned char uint8__t;

typedef    uint8__t   u8;

 五,结构体

Struct 结构体命名{

成员列表1;

成员变量2;

……

}变量名列表;

 例

struct _GPIO
{
__IO uint32_t CRL;
__IO uint32_t CRH;
…
};

 定义了一个结构体 GPIO,这样我们定义变量的方式为

struct _GPIO GPIOA;//定义结构体变量 GPIOA

但是这样很繁琐, MDK 中有很多这样的结构体变量需要定义。这里我们可以为结体定义一个别
名 GPIO_TypeDef,这样我们就可以在其他地方通过别名 GPIO_TypeDef 来定义结构体变量了。
例如

typedef struct
{
__IO uint32_t CRL;
__IO uint32_t CRH;
…
} GPIO_TypeDef;

Typedef 为结构体定义一个别名 GPIO_TypeDef,这样我们可以通过 GPIO_TypeDef 来定义结构体变量
例如

GPIO_TypeDef _GPIOA,_GPIOB;

(结构体的理解如图

 )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值