一、多重知识点
1.学会占位符的使用;
2.scanf与scanf_s()的区别:
-
安全性:
scanf
:这是 C 语言标准库中的一个经典函数,用于读取格式化的输入。然而,scanf
在处理某些输入时可能会存在安全问题,特别是当输入数据超出了目标变量的容量时。这可能导致缓冲区溢出,从而引发程序崩溃或更严重的安全问题。scanf_s
:这是 Microsoft 对scanf
的一个安全版本,主要在 Windows 平台上使用。scanf_s
提供了额外的参数来指定输入数据的大小,从而防止缓冲区溢出。这使得scanf_s
在处理用户输入时更为安全。
-
可移植性:
scanf
:作为 C 语言标准库的一部分,scanf
在所有支持 C 语言的平台上都是可用的。因此,使用scanf
的代码通常具有更好的可移植性。scanf_s
:由于scanf_s
是 Microsoft 的特定实现,它并非 C 语言标准的一部分。因此,使用scanf_s
的代码可能在非 Windows 平台上无法编译或运行。这限制了scanf_s
的可移植性。
-
使用方式:
scanf
和scanf_s
在使用上的主要区别在于scanf_s
需要额外的参数来指定输入数据的大小。这使得scanf_s
的调用语法稍微复杂一些。
3.system(“pause”);
4.定义类型名
typedef enum{
MON=0,TUE,WED,SUN
}WeekDay;//声明
WeekDay workDay,weekEnd;//定义
//使用 workDay=MON;
weekEnd=SUN;
5.结构体
typedef struct{
int num;
char name[20];
int age;}StructStudent;
StructStudent student1;
student1.num=1234;
6.结构体指针
Struct* Ptv;
Struct tv;
Ptv=&tv;
引用:Ptv->hour
加M操作:①指针加M,数据类型大小*M;②结构体指针加M,结构体大小*M
7.API函数
extern与static
多文件:头文件:防止重复编译:
#ifndef _ADD_H_
#define _ADD_H_
#endif
二、设计电子时钟
8.多媒体定时器
windows中的定时器:多媒体与普通
#include<windows.h>
#pragma comment(lib,"winmm.lib")
static void __stdcall TimeProc(unsigned int ID,unsigned uMsg){}
timeSetEvent(2,1,TimeProc,0,TIME_PERIODIC);
9.a++与++a
先赋值后增加;先增加后赋值。
10.基于多媒体定时器的电子钟设计:
1.撰写时分秒的转换函数;
2.写秒值与时间转换函数,初始化+调用函数计算;
3.滴答计数,时间保存与获取;初始化+2ms执行一次+设置+获取;
4.app.c:初始化+定时器回调函数(每2ms)+处理2ms的任务(达到1s)+1s的任务+执行(初始化+定时器设定)
11.API设计与应用:
时钟运行函数:初始化+运行+暂停+获取+设置+显示
app.c同上