| xTaskCreate( | vLED1Task, | “LED1”, | 128, | NULL, | 1, | NULL); |
|---|
| 任务代码 | 任务名称 | 栈深度 | 参数 | 优先级 | 返回的任务句柄 |
示例1:编写C语言程序,打印平方数。用户输入一个数字n,该程序会打印n个平方数,即$1^2$,$2^2$,$3^2$…$n^2$这些数字,比如用户输入5,打印1,4,9,16,25。
main.c
1234567891011121314151617181920212223 | #include <stdio.h>#include <stdlib.h>#include "my_file.h" int globalVar1 = 36;int globalVar2[100]; int main(){ int n; scanf("%d",&n); int *pBuffer = (int*)malloc(sizeof(int) * n); for(int i=0;i<n;i++) { pBuffer[i] = GetNextSquare(); } for(int i=0;i<n;i++) { printf("%d,",pBuffer[i]); } return 0;} |
my_file.c
123456789101112131415 | static int staticGlobalVar1 = 100; static int Square(int input){ return input * input;} int GetNextSquare(){ static int num = 1; int ret = Square(num); num++; return ret;} |
| 生命周期 | 作用域 |
|---|
| 全局变量 | 程序开始到结束 | 整个程序所有文件 |
| 局部变量 | 进入函数/代码块到退出时销毁 | 仅定义的函数/代码块 |
示例2:初始化USART1,在工程中新建test.c文件,编写代码通过USART1打印Hello World
test.c
12345678910 | #include <string.h> #include "stm32f1xx_hal.h" extern UART_HandleTypeDef huart1;void SayHelloWorld(void){const char *str = "Hello World\n";HAL_UART_Transmit(&huart1, (const uint8_t *)str,strlen(str), HAL_MAX_DELAY);} |
main.c
| 生命周期 | 作用域 |
|---|
| 全局变量 | 程序开始到结束 | 整个程序的所有文件 |
| 静态全局变量(static) | 程序开始到结束 | 仅在创建它的文件内部 |
| 局部变量 | 进入函数/代码块到退出时销毁 | 仅定义它的函数/代码块 |
| 静态全局变量 | 初次调用创建它的函数时到退出时销毁 | 仅定义它的函数/代码块 |
| 堆变量 | 从malloc()到free() | - |