C++
文章平均质量分 67
hondrif82q
这个作者很懒,什么都没留下…
展开
-
linux c语言库函数
有 时候我们在编译程序的时候还要指定库的路径,这个时候我们要用到编译器的 -L选项指定路径.比如说我们有一个库在 /home/hoyt/mylib下,这样我们编译的时候还要加上 -L/home/hoyt/mylib.对于一些标准库来说,我们没有必要指出路径.只要它们在起缺省库的路径下就可以了.系统的缺省库的路径/lib /usr/lib /usr/local/lib 在这三个路径下面的库,不管在什转载 2007-01-09 16:24:00 · 3175 阅读 · 1 评论 -
ASSERT()和assert() | const,static和volatile要注意的几个问题 |define宏与const区别
1 ASSERT()是干什么用的 ASSERT ()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句。这个宏通常原来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。例如,变量n在程序中不应该为0,如果为0可能导致错误,你可以这样写程序:原创 2007-02-28 17:26:00 · 1056 阅读 · 0 评论 -
引用的几点问题
引用的几点问题1引用vs指针引用创建时初始化;不能为NULL;一旦初始化,就不能改变引用关系引用是变量别名,在创建时不用分配内存空间 2引用作为函数参数(1)传递引用给函数与传递指针给函数作用相同(2)在内存中没有产生实参副本,直接操作实参,减少了开销 一般变量作为传递给函数的参数,要给形参开辟内存空间,形参是实参的副本(3)使用指针作为函数的参原创 2007-03-02 13:19:00 · 843 阅读 · 0 评论 -
linux下头文件 标准路径
find /usr -name signal.h 用来查找signal.h的路径 一般在/usr/lib目录下原创 2007-03-19 10:27:00 · 2330 阅读 · 0 评论 -
Joel Spolsky给计算机系学生的建议 及一些个人看法
Joel Spolsky给计算机系学生的建议 毕业前学会写作如果Linus Torvalds不懂如何布道的话,Linux会成功吗? 正象每一个黑客,Linus精通写作,他知道如何准确地在email和邮件讨论组中使用书面英语表达自己的思想,所以他能够从全世界召集大量志愿者为Linux工作。你听说过最近风靡全世界的极限编程(Extreme Programming)吗? 即使你不懂什么是极限转载 2007-03-23 11:42:00 · 1752 阅读 · 0 评论 -
在Redhat Linux 9中编译和配置gvim 7.0
1. 下载vim的源码: vim的官方网站是:[url]www.vmunix.com/vim[/url] 可以用这个链接下载源码包:[url]ftp://ftp.jp.vim.org/pub/vim/unix/vim-7.0.tar.bz2[/url] 2. 配置: 如果想编译出gvim,要用下面这句配置命令: $ ./configure / --prefix=/u转载 2007-04-01 21:45:00 · 1500 阅读 · 0 评论 -
c核心函数库(1)
原创 2007-05-23 10:42:00 · 765 阅读 · 0 评论 -
c核心函数库(3)
1 char * fgets(char * s,int size,FILE * stream); 函数说明 fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。 返回值 gets()若成功则返回s指针,返回NULL则表示有错误发生。 范例 #includema原创 2007-05-24 20:29:00 · 1046 阅读 · 0 评论 -
c语言核心函数库(2)
1 定义函数 int getchar(void); 函数说明 getchar()用来从标准输入设备中读取一个字符。然后将该字符从unsigned char转换成int后返回。 返回值 getchar()会返回读取到的字符,若返回EOF则表示有错误发生。 附加说明 getchar()非真正函数,而是getc(stdin)宏定义。 2 定义函数 int getc(FILE * stream)原创 2007-05-23 11:20:00 · 1120 阅读 · 0 评论 -
C++多态如何实现 | sys_brk原理
1、C++多态如何实现重载overload是相同范围内,函数名相同,参数不同; 覆盖override不同范围内(派生类和基类),函数名相同,参数也相同,基类函数必须有virtual关键字; 重载的意义在于针对同一函数调用提供了多种可选版本; 而覆盖一般是指派生类的成员函数去覆盖基类的(同名)成员函数,使在派生类的作用域内只有派生类自己那个成员函数可见,而要调用基类的同名函数原创 2007-02-27 10:54:00 · 1256 阅读 · 0 评论 -
数据结构——简单Hash Table实现
hash-table是一种非常有用的数据结构,hash所带来的查找和插入效率(特别是前者),都是让人十分满意的。因此很多的符号表的组织都采用这种方式来实现,k_eckel在实现Visual CMCS的符号表的时候采用的也是这种方式。hash-table需要考虑的问题主要是有两个:1)hash函数的选择,2)冲突的解决方案。对于后者有很多种解决策略,但是最为常见的是链地址法,也就是将ha转载 2007-01-14 20:32:00 · 2114 阅读 · 0 评论 -
Linux C编程 2(原创)
hondrif的学习日志 1 系统调用stat将文件filename的信息存放在参数buf指向的stat结构中 int stat(const char *filename,struct stat *buf) 用来获取文件的状态 是系统调用 其中mode_t指的是 Access: (0664/-rw-rw-r--) r表示4, w表示2,x表示1 文件模式定义的常量原创 2007-01-10 21:20:00 · 773 阅读 · 0 评论 -
Linux C编程 3(原创)
补充文件操作: 1 fcntl函数──对已打开文件描述符进行各种控制操作 int fcntl(int fd,int cmd) 头文件 cmd= F_DUPFD 复制fd F_GETFD F_SETFD 获取/设置fd F_GETLK F_SETLK F_SETLKW 获取/设置记录锁 F_GETOWN F_SETOWN 获取/设置异步 I/原创 2007-01-10 22:36:00 · 648 阅读 · 0 评论 -
sizeof()使用的几点注意 以及小数转二进制数
一个例子:char* ss = "0123456789";sizeof(ss) 结果 4 ===》ss是指向字符串常量的字符指针sizeof(*ss) 结果 1 ===》*ss是第一个字符char ss[] = "0123456789";sizeof(ss) 结果 11 ===》ss是数组,计算到/0位置,因此是10+1sizeof(*ss) 结果 1 ===》*ss是第一个字符char ss[1原创 2007-03-01 11:08:00 · 1422 阅读 · 0 评论 -
Linux C编程 1(原创)
在进行文件处理中遇到的几个问题,思考并解决 1. 犯了个错,使用 gcc -c -g test_open1.c -o test_open1 (-c就不链接了) 总是permission denied -c Compile or assemble the source files, but do not link. The linking stage simply原创 2007-01-09 20:47:00 · 814 阅读 · 0 评论 -
易出错的地方
一 二分查找算法:1、递归方法实现:int BSearch(elemtype a[],elemtype x,int low,int high)/*在下届为low,上界为high的数组a中折半查找数据元素x*/{ int mid; if(low>high) return -1; mid=(low+high)/2; if(x==a[mid]) return mid; if(x else原创 2007-02-27 15:20:00 · 765 阅读 · 0 评论 -
函数指针
“函数指针”是指向函数的指针变量,因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上一致的。函数指针有两个用途:调用函数和做函数的参转载 2007-03-03 20:55:00 · 925 阅读 · 0 评论 -
更深层次分析一道试题——指针内存分配
指针参数是如何传递内存的?如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1 中,Test 函数的语句GetMemory(str, 200)并没有使str 获得期望的内存,str 依旧是NULL,为什么?void GetMemory(char *p, int num){p = (char *)malloc(sizeof(char) * num);}void Test(void转载 2007-02-28 17:30:00 · 780 阅读 · 0 评论 -
关于static 的各种数据类型 及在面向对象编程中的应用
一、按存储区域分,全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区。 1定义全局静态变量的好处:不会被其他文件所访问,修改其他文件中可以使用相同名字的变量,不会发生冲突。 2在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。(1)和全局静态变量一样都在静态存储区域(2)初始化:未经初始化的全局静态变量转载 2007-03-01 19:19:00 · 906 阅读 · 0 评论 -
关于Hash表
什么叫哈希表(Hash Table) google搜索到的头条:散列表(也叫哈希表),是根据关键码值直接进行访问的数据结构,也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 我觉得这个解释太含糊,想要整明白哈希表,那就得明白哈希表到底有什么样的优势。 数据结构中,有个时间算法复杂度O(n)的概念来衡量某种算转载 2007-01-14 17:15:00 · 2589 阅读 · 2 评论 -
c标准库(4)
assert.hassert用于抓住逻辑错误,而不是运行期间错误。当代码准备生成时,应该关闭断言处理,可以在每个翻译单元开始的附近包括以下语句:#define NDEBUGstddef.h定义了宏NULL,是通用的0指针常量。ptrdiff_t 指针相减的类型size_t sizeof的类型,无符号整型数,代表了在开发环境中能声明的最大数据对象的大小wchar_t原创 2007-06-07 10:02:00 · 1000 阅读 · 0 评论