必须掌握汇编
#include //预处理指令
#include <stdio.h> 库文件 系统指定目录下查找对应内容
#include "xxx.h" 头文件 首先在工程项目下查找对应内容 如果未找到则在系统指定路径当中查找
std--> standard
i-->input
o--->output
h--->header 头文件
return 0; 结束语句
注释 //
多行注释 /* */
常见头文件
控制台程序 stdio.h stdlib.h
WIN32 windows.h
驱动程序 ntifs.h
int mian(){
return 0;
}
int 返回值
() 参数列表
{} 代码块
程序的入口函数 有且只能有一个
控制台程序main
DGI程序 winmain
驱动服务 DriberEntry
system 相当cmd
system("指令")
cmd查询说明 指令格式+ /?
cls 清理控制台内容
calc 运行计算器
pause 请按任意键继续
color 控制台颜色
notepad 运行记事本
函数定义
返回值 函数名(参数){}
函数调用
函数名()
#include<stdio.h>
#include<stdlib.h>
// 控制台程序入口
int main() {
printf("Hello, World!\n");
system("pause");
return 0;
}
定义变量
数据类型 变量名 = 参数值;
int age;
int number=1;
变量定义--->占用内存空间
int a=10;
变量声明---->不占用内存空间
extern b;
类型限定符
extern 声明变量
const 常量
register 寄存器变量
volatile 防止编译器优化
数据类型
常量特性-->常量默认是不允许修改的(IDE限制/内存属性限制)-将常量内存地址对应物理页属性(R/w)修改后即可修改常量
宏常量 通常定义在源文件最上方
#define Age 18
const 修饰的变量
语法:cosnt int a =10
内存空间 线程栈区内存
突破编译器限制
// 局部变量内突破编译器限制
const int b=9;
// IDE限制不给修改b
// 用指针修改
int*p =&b;
*p=19;
全局变量内突破编译器限制
const int g_Num =1;
// 修改属性
VirtualProtect(内存地址,修改大小,内存属性,默认属性)