# 空指令,无任何效果
#include 包含一个源代码文件
#define 定义宏
#undef 取消已定义的宏
#if 如果给定条件为真,则编译下面代码。{if(){}
#elif 如果前#if条件不为真,当前条件为真,则编译下面代码。else if(){}
#else 如果都不为真,则执行。 else{}
#endif 结束一个#if……#else条件编译块。}
#ifndef 如果没有定义宏,则编译下面代码。if(!(#define xxx)){}
#ifdef 如果已经定义宏,则编译下面代码。if(#define xxx){}
#else 如果都不为真,则执行。if(#define xxx){}else{}
#endif 结束一个#if、#ifndef、#ifdef、{}
#if define 如果没有定义宏,则编译下面代码。if(#define xxx){}
#elif define 如果前#if define条件不为真,当前条件为真,则编译下面代码。else if(#define xxx){}
#else 如果都不为真,则执行。 else{}
#endif 结束if
#error 停止编译
#pragma once 避免同一个头文件被多次包含
n表示值1、2、4、8、16
#pragma pack(show) 给出警告、告知当前内存对齐字节
#pragma pack(push) 将当前对齐字节压入栈
#pragma pack(push,n) 将当前对齐字节压入栈,并将n设置为新的内存对齐
#pragma pack(pop) 将栈顶保存的内存对齐值弹出并设置为新的内存对齐
#pragma pack(n) 将n设置为新的内存对齐
#pragma pack() 取消自定义内存对齐方式
#pragma comment(lib,"xx.lib") 导入库文件
#pragma comment(linker, "/ENTRY:main") 改变入口函数
#pragma data_seg("段名") 创建一个数据段
#pragma data_seg("") 代码段结束
#pragma code_seg("段名") 创建一个数据段
#pragma code_seg("") 代码段结束
#pragma message("qwerasdf") 在编译输出窗口显示"qwerasdf"
#pragma optimize("",off)
...code 取消代码优化
#pragma optimize("",on)
#pragma warning(disable:4507 34) 不显示4507、34号警告信息
#pragma warning(once:4385) 4385号警告信息只出现一次
#pragma warning(error:164) 把164号警告看做一个错误信息
_declspec(neked) 裸函数(原始函数)声明,栈平衡与返回需要用_asm汇编自己编写 需要自己
void _declspec(neked) Function(){_asm{}};
_declspec(thread) int a=0; &a是TLS 线程本地储存的位置。这东西debug版还好,release版优化就没了,#pragma optimize("",off)取消代码优化都没用。