C++函数的哑元及其作用

一个函数的参数 只有类型 没有名字 则这个参数称之为哑元。 哑元的作用 1.表达参数列表匹配更加严格 void test(void); 2.保持函数的向前兼容特性 void code(int key);//老版本函数 code(1234); void c...

2018-12-19 11:03:19

阅读数 12

评论数 0

C++ 如何重载前置++和后置++运算符

注意一下几点:  1、前置++重载时没有参数,而后置++重载时有参数。不会使用其参数,仅仅是区分用。可以理解为前置++后面有参数了,所以不需要参数  2、前置++需要返回引用,因为重载自加运算符后可以返回对象的引用, 以方便在表达式中连续使用。而后置++返回的不是引用,所以不能进行连续使用。 ...

2018-12-19 10:57:57

阅读数 21

评论数 0

寄存器讲解--汇编(32位处理器)

32位处理器  寄存器分为四类:  *通用寄存器*  *段寄存器*  *状态和控制寄存器*  *指令寄存器* 一、通用寄存器 有八个 EAX    累加和结果寄存器 EBX    数据指针寄存器 ECX    循环计数器 EDX    i/o指针 ESI    源地址寄存器        ...

2018-12-13 12:00:42

阅读数 29

评论数 1

EAX、ECX、EDX、EBX寄存器的作用

一般寄存器:AX、BX、CX、DX AX:累积暂存器,BX:基底暂存器,CX:计数暂存器,DX:资料暂存器 索引暂存器:SI、DI SI:来源索引暂存器,DI:目的索引暂存器 堆叠、基底暂存器:SP、BP SP:堆叠指标暂存器,BP:基底指标暂存器 EAX、ECX、EDX、EBX:為ax,bx,c...

2018-12-13 11:50:30

阅读数 17

评论数 0

函数调用--函数栈

函数调用大家都不陌生,调用者向被调用者传递一些参数,然后执行被调用者的代码,最后被调用者向调用者返回结果,还有大家比较熟悉的一句话,就是函数调用是在栈上发生的,那么在计算机内部到底是如何实现的呢?   对于程序,编译器会对其分配一段内存,在逻辑上可以分为代码段,数据段,堆,栈 代码段:保存程...

2018-12-13 11:33:25

阅读数 13

评论数 0

VS2008反汇编小解

了解反汇编的一些小知识对于我们在开发软件时进行编程与调试大有好处,下面以VS2008环境下的VC++简单介绍一下反汇编的一些小东西!如果有些解释有问题的地方,希望大家能够指出。 1、新建简单的VC控制台应用程序(对此熟悉的同学可以略过) A、打开Microsoft Visual Studi...

2018-12-12 20:18:39

阅读数 47

评论数 0

动态链接库中的.symtab和.dynsym

shared library (.so) "Program Library Howto-Shared Libraries"是很好的材料, 下面的内容多是据此整理的. 定义: Shared libraries are libraries that are lo...

2018-09-13 21:59:59

阅读数 34

评论数 0

bss段不占据磁盘空间的理解

elf文件中.bss段: 存放未初始化的全局变量,将.data和.bss分开的理由是为了节约磁盘空间,.bss不占实际的磁盘空间。这句话该怎么理解呢?  可以看下面的例子: #include <stdio.h> int a[1000]; int b[...

2018-09-12 14:51:44

阅读数 15

评论数 0

关于BSS段的大小

1.BSS段中的内容 先明确 BSS 段“存放”的是未初始化的全局变量与局部静态变量,此处指的存放是指为其预留空间(占位符)。但BSS段在磁盘上不是真的占用变量大小的空间,它仅是在该段中记录了所有未初始化全局变量与局部静态变量的大小总和,至于每个变量的大小则存储在符号表的size属性中。即:  ...

2018-09-12 14:35:43

阅读数 24

评论数 0

字符串转换成整数

#include<iostream> #include<string> #include<limits> using namespace std...

2018-08-20 10:50:19

阅读数 139

评论数 0

linux编译动态库之fPIC

在生成动态库时,常常习惯性的加上fPIC选项,fPIC有什么作用和意义,加不加有什么区别,这里做下小结: fPIC的全称是 Position Independent Code, 用于生成位置无关代码。什么是位置无关代码,个人理解是代码无绝对跳转,跳转都为相对跳转。 1、不加fPIC选项 即使...

2018-08-17 10:39:05

阅读数 74

评论数 0

使用 __declspec(dllimport) 导入函数调用

下面的代码示例显示如何使用 _declspec(dllimport) 将函数调用从 DLL 导入到应用程序中。 假定 func1 是驻留在某个 DLL 中的函数,而此 DLL 与包含“主”函数的 .exe 文件是分开的。 不使用 __declspec(dllimport),给出此代码: in...

2018-08-16 21:38:43

阅读数 640

评论数 0

__declspec(dllexport)与__declspec(dllimport)

区别        他们都是DLL内的关键字,即导出与导入。他们是将DLL内部的类与函数以及数据导出与导入时使用的。       dllexport是在这些类、函数以及数据的申明的时候使用。用他表明这些东西可以被外部函数使用,即(dllexport)是把 DLL中的相关代码(类,函数,数据)暴...

2018-08-16 21:33:21

阅读数 444

评论数 0

awk练习1

1. sed和awk有什么区别? (1)awk:按列(域)操作;sed:按行操作 (2)awk:文本处理语言,适合对文本进行抽取处理;sed:非交互式的编辑器,适合对文本进行编辑 2. awk要处理域的时候,以哪个参数作为分割参数? -F   3. 请打印出/etc/passwd 第一个域...

2018-08-15 09:16:59

阅读数 31

评论数 0

epoll源码分析

在create后会创建eventpoll对象保存在一个匿名fd的file struct的private指针中,然后进程睡在等待队列上面。 对于等待的fd,通过poll机制在准备好之后会调用相应的call_back函数。在函数中将当前fd加入对应eventpoll的队列中。 然后唤醒等待队列上面的进...

2018-08-11 21:02:45

阅读数 42

评论数 0

C++常见面试题—内存管理GetMemory()

1.关于动态申请内存的问题 出现率极高   程序的局部变量存在于(栈)中 程序的全局变量存在于(静态存储区)中 程序动态申请的数据存在于(堆)中 <1> void GetMemory(char *p) { p = (char *)mal...

2018-08-10 18:15:45

阅读数 82

评论数 0

C++中explicit的用法

C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生,声明为explicit的构造函数不能在隐式转换中使用。 C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。  1 是个构造;2 是个默认且隐含的...

2018-08-10 10:47:46

阅读数 19

评论数 0

详解c/c++中volatile关键字

一、volatile介绍 volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现...

2018-08-08 13:34:25

阅读数 14

评论数 0

一个TCP FIN_WAIT2状态细节引发的感慨

昨天下午跟同事讨论TCP挥手断开的细节,越发感到TCP协议真的是非常令人讨厌,这个协议已经成了人们装逼的谈资,就是因为它非常复杂,且毫无确定性可言!如果你能说出它的任何细节方面的前因后果,那你一定就是牛人了,但这其实毫无意义。 如果你阅读TCP的诸多RFC,然后对比着4.4 BSD,Linux,...

2018-07-31 10:40:00

阅读数 367

评论数 0

C++ 的单元测试工具 —— Catch

如果你平常使用 Java 语言做开发,当你听到单元测试工具的时候,你很可能马上会想起 JUnit。作为一名C++软件工程师,当我第一次打算给我的程序做单元测试的时候,我的第一想法是:有这样的工具吗?经过一段时间的搜索之后,我的反应变成了:我该用哪一个? 我在学校的时候,很少听说C++的单元测试工...

2018-07-22 20:21:52

阅读数 140

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭