一、一些基本概念
C语言是一种计算机编程语言,用于编写计算机程序,我们用C语言和计算机沟通,告诉计算机它要做什么。
“.c”文件:源代码文件,包含程序的源代码,即程序的逻辑和功能实现。其中“main.c”文件中的main函数是程序执行的起点。
#备注:“源代码”是计算机程序的原始文本表示,它由程序员使用特定的编程语言编写,包含了实现特定功能或算法所需的指令集。
“.h”文件:头文件,头文件一般存放一些重复使用的代码,例如函数声明,变量声明,宏定义等。
“#include”:是C语言的一个预处理指令,它的作用是告诉编译器在当前位置包含另一个文件的内容。
“#define”:是C语言的一个预处理指令,用于在编译之前定义宏。
#备注:“宏”是一种符号替换机制,它允许程序员定义一个标识符(宏名),并指定一个文本字符串来替换这个标识符。当编译器遇到宏名时,它会将其替换为相应的文本字符串,这个过程称为宏展开。
“声明”:是告诉编译器某个变量或函数的存在及其类型信息,但并不为其分配内存。声明本质上是一条语句。声明的目的是告知编译器在程序的其他部分可以找到该变量或函数的定义。声明通常在头文件中进行,以便在多个源文件中共享。
“定义”:不仅告诉编译器变量、函数或类型的存在及其类型信息,还为其分配内存或提供具体实现。变量的定义通常包括初始化,而函数的定义则包含函数体。定义常放在源文件中。
二、C程序的基本构成
一段C程序的基本构成主要包括:预处理指令、函数、变量声明、语句和表达式、注释。
1、预处理指令
以“#”开头,用于在编译之前进行一些操作,如包含头文件(#include
)、定义宏(#define
)等,C语言共有11个预处理指令。
2、函数
C程序由一个或多个函数组成,其中“main”函数是程序的入口点,程序的执行从main
函数开始。
main函数的函数描述中可以调用其他函数,也可以自己定义函数后调用。
3、变量声明
用于声明程序中使用的变量,包括变量的类型和名称,变量可以在函数内部或全局范围内定义。
逗号(,)用于分隔变量声明或函数参数。
4、语句和表达式
语句是程序的基本执行单元,表达式用于计算值。C程序中的语句和表达式包括赋值、控制结构(如if
、for
、while
等)。
分号(;)用于结束语句。
5、注释
用于解释代码的目的、功能或其他相关信息,提高代码的可读性。C语言支持单行注释(/.../
)和多行注释(/* ... */
)。
三、举例
#include "./SYSTEM/sys/sys.h"
#include "./SYSTEM/usart/usart.h"
#include "./SYSTEM/delay/delay.h"
#include "./BSP/LED/led.h"
int main(void)
{
HAL_Init(); /* 初始化HAL库 */
sys_stm32_clock_init(336, 8, 2, 7); /* 设置时钟,168Mhz */
delay_init(168); /* 延时初始化 */
led_init(); /* 初始化LED */while(1)
{
LED0(0); /* LED0 亮 */
LED1(1); /* LED1 灭 */
delay_ms(500);
LED0(1); /* LED0 灭 */
LED1(0); /* LED1 亮 */
delay_ms(500);
}
}
这使是一段跑马灯的程序,各个部分对照如下,
1、预处理指令
#include "./SYSTEM/sys/sys.h"
#include "./SYSTEM/usart/usart.h"
#include "./SYSTEM/delay/delay.h"
#include "./BSP/LED/led.h"
上述代码,就是这段程序的预处理指令,它们均以“#”开头。
2、函数
上图所示,就是这段程序中的函数部分,可见这段程序中main函数调用了其他函数,比如HAL_Init()、delay_init()等四个初始化函数,以及由while结构组成的表达式。
3、变量声明
这段程序中的每个具体数字就是一个变量,只不过变量的声明在其对应的“.h”文件中,此段代码并未直接体现,而是直接给变量进行的赋值。
4、语句和表达式
这段代码中,main函数的函数体由语句和表达式组成。
5、注释