关键字
auto 自动识别类型。
register 寄存器变量。
const 限定变量的值不能被改变。
volatile 防止被优化。
extern 表示变量或者函数的定义在别的文件中。
static 1.静态全局变量。
2.有默认的初值。
3.只做一次初始化。
4.限定作用域(只能在本文使用)
5.生命周期:定义开始到整体的程序的结束。
typedef 给已知类型换一个别名。
#define(宏定义) 进行简单的替换(不会分配内存)(do{}while(0)头文件不用加分号)
函数不能计算内存和存类型。
宏定义可以计算内存和存类型。
头文件
1. #include<stdio.h>系统指定路径
#include "hu.h" 用户指定路径
2.头文件禁止定义变量。
3.防止头文件重复包含。
#ifndef 文件名大写_H #define 文件名大写_H #endif
#pragma once
静态库特点总结:
1.静态库对函数库的链接是放在编译时期完成的。
2.程序在运行时与函数库再无瓜葛,移植方便。
3.浪费空间和资源,因为所有相关的目标文件与牵涉到的函数库
被链接合成一个可执行文件。
动态库特点总结:
1.动态库把对一些库函数的链接载入推迟到程序运行的时期。
2.可以实现进程之间的资源共享。(因此动态库也称为共享库)
3.将一些程序升级变得简单。
4.甚至可以真正做到链接载入完全由程序员在程序代码中控制
(显示调用)。
5.与创建静态库不同的是,不需要打包工具(ar、lib.exe),直接
使用编译器即可创建动态库。
-l(小写l) 链接库的名称。
-L 表示的当前库的所在目录。
-I (大写的i)告知头文件的路径。