- 博客(19)
- 收藏
- 关注
翻译 IA-32和x86-64调用规约
本篇文章总结了编写x86汇编语言必须遵守的一些约定1、易变(Volatile)和非易变(Non-Volatile)寄存器表列举了Visual C++易变和非易变寄存器,函数如果要使用非易变寄存器的,那么必须要保存非易变寄存器的内容,win32函数使用push 和 pop 指令来保存非易变通用寄存器的内容,win64函数除了要保存通用非易变寄存器的内容外,还需要保存XMM非易变寄存器。在函数内部,w...
2018-04-24 20:22:09
859
原创 IA-32中的数值运算
1、IA-32中的整数运算整数加减法运算内存中整形数是以补码的形式存储在内存中:原码表示范围:负数部分:1111 1111(-127)~1000 0000(-0);正数部分:0000 0000(+0)~01111111(127)补码表示范围:负数部分:1000 0001(-127)~11111111(-1);正数部分:0000 0000(+0)~0111 1111(127)其中,原码中的1000 ...
2018-04-18 09:38:36
1365
原创 c/c++可变参数函数
可变参数函数参数数量没有固定的数量,通常在传递参数的时候设置第一个参数标识传递参数数量;或者是设置最后一个参数为结束位来标识参数传递结束。对于可变参数函数,头文件stdarg.h宏定义了几种运算符帮助程序员快速获取可变函数的参数。1.对于可变参数函数可以使用的几种宏定义可变参数函数定义: void test(int a,...);1、va_list 符号别名定义:typedef cha...
2018-03-22 21:32:41
347
原创 预处理运算符
预处理器运算符作用在预处理阶段,在#define中处理字符时使用。1、#:字符串化运算符对于需要转义的字符如“或者\,宏处理运算符会自动插入到字符前对于用空格隔开的字符串,宏处理过程会自动拼接各个字符#define fb(x) #x "bc"fb(a); 结果为字符串abcfb('a');结果为字符串'a'bc2、#@,字符化运算符 宏处理会将该运算符实参处理为单个字符#define fc(x) ...
2018-03-16 15:42:53
400
原创 关于结构体内存对齐方式的总结(#pragma pack()和alignas())
最近闲来无事,翻阅msdn,在预编译指令中,翻阅到#pragma pack这个预处理指令,这个预处理指令为结构体内存对齐指令,偶然发现还有另外的内存对齐指令aligns(C++11),__declspec(align(#))(Microsoft专用),遂去探究两者之间的不同点。1、#pragma pack这个指令为预处理指令,所谓与处理指令执行在程序的预处理阶段,该指令对应着编译选项/Zp,可以在...
2018-03-07 14:39:46
3111
转载 常见visual stdio快捷键
转帖地址:http://blog.youkuaiyun.com/liuqiyao_01/article/details/47404165项目相关的快捷键Ctrl + Shift + B = 生成项目Ctrl + Shift + N = 新建项目Ctrl + N = 新建文件快速生成代码输入if、try、for 后,点击两次tab = 生成默认代码方法折叠、展开Ctrl + M + L = 快速展开一个类中的...
2018-02-03 20:43:34
574
原创 理解数组和引用作为参数和返回值传递
根本:数组不能拷贝,所以函数、返回值传递数组变量只能通过数组的指针或者是引用 一、函数返回值问题:指针(注:函数的返回值不能是数组,只能是数组的指针或是引用)1、函数返回指针(包含动态数组)声明:int * retArray(int i);声明:int * retArray(int i)[10];函数返回数组,内部存储为基本数据类型的指针注:此种定义是错误的,函数返回值为数组是被禁止的,只...
2018-02-03 20:01:53
5609
原创 理解c++函数指针
一、函数指针(通过参数与返回值来确定一个函数指针) 1、直接声明 int (*pf)(string& a,string & b); //定义pf指向参数为a,b,返回值为int类型的函数 int * pf(string&a,string &b); //括号必不可少,此时声明了一个pf函数,返回值为int *型
2018-02-03 19:44:30
299
原创 理解C++复杂数组
带括号的和不带括号的变量阅读顺序: 带括号:由括号内向外理解 不带括号:由右向左理解一、静态数组 1、指针数组:数组内存储的是指针定义:定义即分配空间,基本数据变量和指针皆准int * point[constant]; //constant必须在编译阶段指定初始化:需要给每个元素赋地址值for(int i=0;i<constant;i++) { ...
2018-02-03 19:33:15
491
原创 域名管理与注册机制
本文主要介绍DNS和IP地址基础设施管理与注册机制互联网是分布式管理控制的信息网络系统,但对于IP地址和DNS是由一套层次管理机构来负责统一管理的。ICANN是一家具有全球代表性的互联网名称和数字地址分配机构的非营利国际组织。主要负责IP地址空间分配、DNS指派、协议标识符指派、端口号确定、通用顶级域名以及国家和地区级域名系统的管理、以及根服务器系统的管理。
2017-06-30 10:34:19
1733
原创 回溯法解决八皇后问题(java实现)
算法课上需要用回溯法解决八皇后问题,八皇后问题就是国际象棋棋盘(8*8)上摆放8个棋子,同一横行、竖行、斜线上不能摆放棋子,问有多少种摆法。 回溯法是五大常用算法之一。
2017-06-06 08:26:16
2149
原创 回溯法解决八皇后问题(java实现)
算法课上需要用回溯法解决八皇后问题,八皇后问题就是国际象棋棋盘(8*8)上摆放8个棋子,同一横行、竖行、斜线上不能摆放棋子,问有多少种摆法。 回溯法是五大常用算法之一。回溯法的基本思想是: 1、 在解空间树中,从根节点出发,采用深度优先搜索的思想来遍历解空间树。每一次遍历节点时都判断当前 节点是否为合法解,如果为合法解,那么继续
2017-06-04 18:29:23
1415
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人