c语言串口通信头文件,关于一个uart.h头文件的问题?

"本文探讨了C++源文件中`extern"C"`的使用,它用于在C++代码中处理C语言的链接兼容性问题。`extern"C"`告诉编译器按照C语言的规则进行名字修饰,避免C++的名称修饰导致与其他C库的冲突。示例代码展示了如何在函数声明和定义中使用`extern"C"`。同时,文章也提到了`#ifdef __cplusplus`宏,用于条件编译,确保C++编译器看到C风格的代码。"
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#ifdef __cplusplus

extern "C" {

#endif

这里大括号“{”为啥在#endif前面,而不放在#endif的后面 大括号的另一边在倒数第三个#endif那 求高手解释?

还有 extern "C" 是什么意思? C还加双引号 很费解?

源头文件如下:

/****************************************Copyright (c)**************************************************

** Guangzhou ZHIYUAN electronics Co.,LTD.

**

**

**--------------File Info-------------------------------------------------------------------------------

** File Name: UART.h

** Last modified Date: 2005-12-31

** Last Version: v1.0

** Description: S3C2410的串口软件包 (头文件)

#ifndef __UART_H

#define __UART_H

#ifndef IN_UART

#ifdef __cplusplus

extern "C" {

#endif

/********************************************************************************************************

** Function name: UART_Select

** Descriptions: 选择要操作的串口。(UART0--0,UART1--1)

** 选择串口后,必需调用一次UART_Init()进行初始化(只需要一次)。

** Input: no 要使用的串口

** Output: 返回上一次选用的串口

********************************************************************************************************/

extern int UART_Select(uint8 no);

/********************************************************************************************************

** Function name: UART_Init

** Descriptions: 初始化串口。设置为8位数据位,1位停止位,无奇偶校验,波特率为UART_BPS

** Input: 无

** Output: 无

********************************************************************************************************/

extern void UART_Init(void);

/********************************************************************************************************

** Function name: UART_SendByte

** Descriptions: 向串口发送字节数据,并等待发送完毕。

** Input: data 要发送的数据

** Output: 无

********************************************************************************************************/

extern void UART_SendByte(uint8 data);

/********************************************************************************************************

** Function name: UART_SendStr

** Descriptions: 向串口发送一字符串。

** 对于'\n'字符,发送时会加入'\r'字符。

** Input: str 要发送的字符串的指针

** Output: 无

********************************************************************************************************/

extern void UART_SendStr(char const *str);

/********************************************************************************************************

** Function name: UART_GetKey

** Descriptions: 从UART口读取一字节按键数据。

** 会一直等待,直到接收到1字节数据。

** Input: 无

** Output: 返回值即是读出值

********************************************************************************************************/

extern int UART_GetKey(void);

/********************************************************************************************************/

#ifdef __cplusplus

}

#endif

#endif // IN_UART

#endif // __UART_H

/*********************************************************************************************************

** End Of File

********************************************************************************************************/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值