C/C++
阿威_t
这个作者很懒,什么都没留下…
展开
-
关于计算机编程的一点理解(3)
7.C到C++以及this指针 在C中,我们可以定义一个结构然后用相关的函数来操作这个结构,就拿C中的标准文件IO函数来说,我们可以这样写:FILE *fp;char ch;fp=fopen ("C:\\a.txt","r");ch=fgetc(fp); fclose(fp);这段代码读取C:\a.txt文件,原创 2013-01-12 23:33:26 · 219 阅读 · 0 评论 -
深入浅出GNU X86-64 汇编
深入浅出GNU X86-64 汇编本文是我翻译自 Introduction to X86-64 Assembly for Compiler Writers. 因为之前在学校学的X86汇编都是32位的,而现在的PC机处理器基本都是64位的,我的Linux机器也是64位的,反汇编C语言时,生成的是64位汇编,所以翻译一下这篇文章。这篇文章深入浅出的描述了C和X86-64汇编的转换关系。目录深入浅出GNU原创 2017-10-08 11:11:15 · 18415 阅读 · 3 评论 -
ctags vim csrope
1.vim1.1 配置文件vim.rc查看配置信息 vi --versionCompiled by [email protected] version without GUI. Features included (+) or not (-):-arabic +autocmd ...system vimrc file: "$VIM/vimrc" --系统配置user vimr原创 2016-06-13 15:45:13 · 354 阅读 · 0 评论 -
gcc gdb调试 段错误 停在了 libc.so 如何查看函数栈中 参数值
(gdb) p pVal$1 = (GANA_VAL *) 0x0GDB调试停在了glibc中,如何查看如何查看函数栈中,参数值?bt命令:Program received signal SIGSEGV, Segmentation fault.[Switching to Thread 0x920f6b70 (LWP 5472)]0xb5045559 in ?? ()原创 2015-07-02 16:14:07 · 6766 阅读 · 0 评论 -
关于计算机编程的一点理解(1)
看了很多计算机的书,从来没有自己写过东西,其实,写写东西还是不错的。下面谈谈对计算机语言的认识,以c\c++为主,略谈其它。1.计算机是怎么执行程序的 最简单的计算机应该由一个CPU和RAM组成,但是考虑到RAM在掉电的情况下无法保存数据,还需要一个在掉电情况下能够保存数据的存储器(为了方便就叫永久存储器,用英文就叫Permanent Storage,以下就叫PS,顺便说一下这是原创 2013-01-12 23:28:36 · 611 阅读 · 0 评论 -
关于计算机编程的一点理解(6)
10.C++的一些其他东西 C++恐怕是最复杂的高级计算机语言了,估计精通的人不多。我也只是了解一二,也不晓得以后用不用的着,都写在这里备忘。 a.函数重载(Overload)和模板(Template) 我们知道C中的函数,可以传入一定数量的固定类型的参数,但是函数名是不允许相同的。C++的函数可以同名,叫做重载,这样可以写几个同名函数,接收不同参数原创 2013-01-12 23:37:41 · 271 阅读 · 0 评论 -
关于计算机编程的一点理解(5)
9.C/C++指针操作a. C++中的东西是有个名(name)的: 定义有以下几种: 变量: type name; 比如:int i; 数组: type name[N1][N2]…;比如:char chs[4][5]; 函数: type name(type1 v1,type2 v2…);原创 2013-01-12 23:36:29 · 234 阅读 · 0 评论 -
关于计算机编程的一点理解(7)
11.一些常用的计算机语言 c\c++编译后直接由机器执行,是静态语言。还有一种语言,不直接运行在机器上,而是由虚拟机(一种程序)来解释执行,是动态语言,典型的就有JavaScript。静态语言一般不保留类型信息,运行快。动态语言,保留类型信息,自动回收内存,运行较慢。 a.编写网站会用到的一些语言 现在是网络时代,最常见的网络应用就是网站。一个网站,需要原创 2013-01-12 23:38:34 · 301 阅读 · 0 评论 -
关于计算机编程的一点理解(2)
6.C变长参数函数本来准备讨论下对C++的认识的,看了一下昨天写的东西,发现前一篇讲到了函数的参数传递问题,突然想到了C的一个特殊的函数——变长参数函数。其实这也不是个新东西,估计学过C的都用过,只不过没实现过这种函数而已。最常见的就是printf函数:在stdio.h头文件中它是这样定义的:printf(const char *format, ...);原创 2013-01-12 23:31:59 · 228 阅读 · 0 评论 -
关于计算机编程的一点理解(4)
8.面向对象的中虚函数记得刚看到这个词大概是大一下学期。觉得挺玄乎的、挺高级的。当然也激发了我的兴趣。记得有一句话:一切都是对象(Everything is object),大有放之四海而皆准的味道。其实我觉得,面向对象的关键就是封装,只暴露最必要的部分,而把所有不必要的部分隐藏起来。毕竟,什么东西都从头做起是得不偿失的,所以,我们希望把以前的东西做得能够反复使用,就是重用。封原创 2013-01-12 23:35:00 · 259 阅读 · 0 评论 -
一眼看懂二进制补码的计算方法
二进制补码的计算方法二进制补码的计算方法最近,我仔细研究了下linux下,C程序的编译和链接过程。反汇编和查看二进制时,难免看到大量整数的二进制表示,特别是负数,例如0xfffffffc,这个是多少?记得有个转换方法,首先这个数是一个负数,它的绝对值是 ~(0xfffffffc)+ 1 = 0x00000003 + 1 = 4, 所以值为-4。那么这个取反加一的方法是怎么得来的呢?我想不起来了。就自原创 2017-10-16 23:08:28 · 5184 阅读 · 0 评论