xcmercy
码龄7年
关注
提问 私信
  • 博客:931,671
    931,671
    总访问量
  • 134
    原创
  • 1,300,467
    排名
  • 37
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
  • 加入CSDN时间: 2017-10-29
博客简介:

XCMercy

博客描述:
Learning...
查看详细资料
个人成就
  • 获得251次点赞
  • 内容获得58次评论
  • 获得519次收藏
  • 代码片获得287次分享
创作历程
  • 11篇
    2019年
  • 111篇
    2018年
  • 14篇
    2017年
成就勋章
TA的专栏
  • Easy UI
    9篇
  • Struts2
    1篇
  • Java
    17篇
  • Database
    3篇
  • Tomcat
    5篇
  • Layui
    11篇
  • Spring
    15篇
  • JavaScript
    39篇
  • HTML
    4篇
  • CSS
    13篇
  • Git
    6篇
  • Linux
    7篇
  • C/C++
    16篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

349人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

结构体位域并发问题

结构体位域并发问题0x00 位域并发分析上图是结构体BitField变量bf所画,需要根据打印推断出各个位域成员的存储情况,具体代码及打印见0x01 代码和0x02 打印结果部分。如上图所示,GCC编译器会对位域成员进行压缩存储(经测试,VS编译器一样会压缩),比如下方示例代码中的位域成员a、b,他们存储在一个字节上。注意位域成员c、d、e及f的低两位,他们存储在一个字节。计算机是按字节...
原创
发布博客 2019.06.28 ·
1528 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

GCC常用参数及制作使用库

GCC常用参数及制作使用库常用参数-o指定输出文件名gcc hello.c -o hello-I指定头文件所在目录gcc hello.c -o hello -I ./includes-g添加调试信息,配合gdb使用gcc main.c -o debug_main -g -I ./includes/-Wall显示所有调试信息gcc main.c -o mai...
原创
发布博客 2019.05.02 ·
563 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

makefile

makefilemakefile文件名默认是makefile或Makefile,若不是,make命令需要带上-f参数指定makefile文件名规则makefile文件的内容是一组规则的集合,规则格式如下:目标文件:生成目标文件的依赖 通过依赖生成目标文件的命令(必须有一个tab的缩进)注意:makefile中的tab不能是对应数量的空格组合,否则报错ALL:hellohel...
原创
发布博客 2019.05.02 ·
513 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

quick_sort

实现思路每一趟排序,选取一个枢纽值,将数组元素划分为小于枢纽值和大于枢纽值两部分,等价于子数组,然后递归的对每一部分再次进行相同的排序。当需要排序的子数组元素个数为1时,递归调用返回。实现细节/* 三数取中法,选取中值作为枢纽值, 并将中值放在low位置,返回枢纽值*/int select_pivot(int * list, int low, int high){ int mid...
原创
发布博客 2019.04.21 ·
263 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

insert_sort

实现思路将1个记录插入到已经排好序的有序表中,得到新的、记录数加1的有序表实现细节void insert_sort(int * list, int length){ // 假设0号位置已经排好序,故从1开始 for (int i = 1; i < length; i++) { if (list[i] < list[i - 1]) { // 保存需要找位置进行...
原创
发布博客 2019.04.21 ·
288 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

VS项目依赖编译

VS中配置多个项目之间的依赖编译应用场景解决方案下有三个项目A,B,C,A项目为公共模块,生成静态库,供B、C两项目使用,即B、C项目都依赖于A项目。一旦改动A,需要先生成A,再生成B、C,才能保证B、C使用A最新的代码逻辑。现在,我们希望在改动了A之后,不需要手动生成A,在生成B或者C的时候,自动的先生成A,在生成B。解决方案右键B项目选择:“生成依赖项”->“项目依赖项”,在该项...
原创
发布博客 2019.04.20 ·
2120 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

数组指针与指针数组

数组指针与指针数组数组指针int arr[5] = {1,2,3,4,5};int (*p)[5] = &arr;for (int i = 0; i < 5; i++){ printf("%d
", (*p)[i]); // *p 相当于 arr}int (*p)[5];[]优先级比*高,所以加小括号,表明p是一个指针。整体表明p是指向一个长度是5的int数...
原创
发布博客 2019.04.20 ·
184 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

位运算

位运算计算机中数值运算均转换为补码进行运算,运算的结果也是补码,需计算出原码推出对应的值取反运算运算符:~正数取反int a = 2;int b = ~a;/* 计算机中存储数据时,低位在低地址,高位在高地址 运算过程: 1. a:0200 0000 2. b:fdff ffff(补码) 3. 由补码知取反后的数是一个负数,需计算出原码,计算方式:符号位不动,其...
原创
发布博客 2019.04.20 ·
196 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

GDB使用

GDB使用常用指令list/l列出源码,可指定行号break/b 行号在指定行打断点next/n逐过程step/s逐语句run/r运行程序quit/q退出gdb调试continue执行到下一断点print/p 变量名打印变量值其他指令及用法finish跳出函数内部,返回调用处start从程序入口函数处开始执行,...
原创
发布博客 2019.04.20 ·
137 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Windows下制作及使用库

静态库vs创建静态库新建头文件,添加需要的函数的声明新建步骤一中头文件对应的.c文件,实现头文件中声明的函数设置项目的配置类型为“静态库(.lib)”,然后生成即可使用静态库在链接阶段,会把静态库中完全复制到程序中,一旦链接完成,静态库便不需要了,可直接删除,程序照常执行。方式一静态库对应的头文件复制到项目目录下右键项目,依次选择“添加”->“现有项”,找到生成的.l...
原创
发布博客 2019.04.20 ·
258 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

完成端口IOCP

完成端口IOCP转载自:套接字I/O模型-完成端口IOCP推荐一篇经典的对完成端口分析的文章:完成端口(CompletionPort)详解“完成端口”模型是迄今为止最为复杂的一种I/O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NT和Windows 2000操作系统。因其设计的复杂性,只...
转载
发布博客 2019.01.27 ·
1778 阅读 ·
4 点赞 ·
0 评论 ·
6 收藏

常量

常量const修饰的变量修饰全局变量直接修改 失败通过指针修改 失败,原因是该变量在常量区,禁止修改修饰局部变量直接修改 失败通过指针修改 成功,原因是该变量在栈区字符串常量char *s1 = "hello";与char s2[]= "hello";char *s1 = "hello";char类型指针变量s1,指向在常量区中的字符串常量"hello"首...
原创
发布博客 2018.12.09 ·
202 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

C语言内存区域

内存变量变量类型作用域生命周期存储位置局部变量函数内部从变量创建到函数结束栈区全局变量整个项目从程序创建到程序销毁数据区静态局部变量函数内部从程序创建到程序销毁数据区静态全局变量所处文件从程序创建到程序销毁数据区函数函数类型作用域生命周期存储位置全局函数整个项目从程序创建到程序销毁代码区...
原创
发布博客 2018.12.09 ·
947 阅读 ·
2 点赞 ·
0 评论 ·
9 收藏

计算机中的数值存储

计算机的数值存储原码即数值对应的二进制值最高位为符号位,0表示正,1表示负其他数值部分是数值本身绝对值的二进制数负数的原码是在其绝对值的基础上,最高位是1以1字节为例,正0为0000 0000,负0为1000 0000反码正数的反码与原码相同负数的反码:符号位不变,其它位取反补码计算机存储数值用的是补码形式正数的补码、反码、原码相同负数的补码为其反码...
原创
发布博客 2018.12.09 ·
506 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

printf函数

printf函数打印格式打印格式对应数据类型含义%dint有符号十进制整数%hdshort短整数%uunsigned int无符号十进制整数%huunsigned short无符号短整数%ounsigned int无符号八进制整数%x,%Xunsigned int无符号十六进制整数(x对应abcdef,X对应ABCDE...
原创
发布博客 2018.12.09 ·
449 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

C语言分步编译

C语言一步编译命令:gcc -o hello.exe hello.cC语言分步编译预处理命令:gcc -E hello.c -o hello.i宏定义展开头文件展开条件编译剔除注释编译命令:gcc -S hello.i -o hello.s检查语法将C语言转换为汇编语言汇编命令:gcc -c hello.s -o hello.o将汇编...
原创
发布博客 2018.12.09 ·
603 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java线程小记

线程线程生命周期新建就绪运行阻塞死亡线程通信wait使线程放弃监视器进入阻塞状态,当获取到同步监视器后,将再wait阻塞处继续往下执行notify唤醒一个因调用wait方法阻塞的线程notifyAll唤醒所有因调用wait方法处于阻塞状态的线程sleep与waitsleep是Thread对象的静态方法,而wait是Object对象的方法slee...
原创
发布博客 2018.11.10 ·
156 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Mybatis源码解析

Mybatis源码解析查询测试Demo/** * 获取SqlSessionFactory对象 * * @return * @throws IOException */private SqlSessionFactory getSqlSessionFactory() throws IOException { return new SqlSessionFactoryBuilder...
原创
发布博客 2018.10.27 ·
262 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Mybatis缓存

Mybatis缓存Mybatis有两级缓存,分别是一级缓存和二级缓存。一级缓存(本地缓存)一级缓存是SqlSession级别的缓存,默认是开启的。一级缓存使用的是Cache接口的实现:PerpetualCache,底层使用的是Map同一次与数据库会话期间,从数据库查询到的数据会保存到一级缓存,在这个会话期间,再次或多次获取该数据,先从一级缓存中拿。一级缓存失效情景:...
原创
发布博客 2018.10.20 ·
241 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Mybatis的resultType与resultMap

Mybatis的resultType与resultMapresultType指定一个JavaBean的全类名,mybatis会把查询到的结果自动封装为指定的JavaBean&amp;lt;!-- Employee getEmpById(Integer id); --&amp;gt;&amp;lt;select id=&quot;getEmpById&quot; resultType=&quot;com.mxc.entity.Employee&q
原创
发布博客 2018.10.20 ·
475 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多