c/c++
文章平均质量分 63
zuopai
华北电力大学软件工程专业06级学生
希望成为Linux专家
展开
-
c语言 堆栈
老是听说堆栈 其实从来没深究过今天研究c语言内存管理时终于有所了解了一个32位的运行在保护模式下应用程序 无论是Linux 还是Windows 都给它分配一个4GB的平坦的内存空间一个运行着的c程序所占用的内存空间分为代码区 初始化数据区 未初始化数据区 堆区 和 栈区在地址上从高位到地位为(高位)栈区堆区未初始化数据区(即BBS)数据区代码区(低位)栈区存放函数的参数值、局部变量的值 ,由编原创 2008-03-12 19:23:00 · 780 阅读 · 0 评论 -
c99关键字restrict
今天猛地看到 restrict这个关键字功能是将其修饰的变量不与其他变量关联 这样可以提高编译效率关键字restrict的使用可以通过下面两个程序来说明 。如下程序:两个均完成2个16位短型数据数组的矢量和程序1:void vecsum( short *sum, short *in1, short *in2, unsigned int N){ int i;转载 2008-04-02 22:36:00 · 814 阅读 · 0 评论 -
顺序栈实现表达式求值
大一的时候老师叫用c写计算器能处理多个括号嵌套的我33行搞定其实是不会写 只好偷偷写个vbs脚本由vbs把值算出来再写入文件再读取现在我会用栈了补上这迟来的作业应龙哥怕是看不到了奶奶的 那个xx的计算器程序还是我替他写的应龙哥 你怎么可以让他的vc成绩比我还高呢从此培养了我的厌分习惯 我好恨/***************************************************原创 2008-03-31 22:54:00 · 1716 阅读 · 2 评论 -
c语言实现计算器
昨天的是用顺序栈实现的今天的这个是链栈实现的并且计算的算法也改了不再先转换为后缀表达式再求值一步搞定结果导致cal()超级复杂让我debug了半天虽说不符合模块化设计要求不过我对自己可以解决那么多重嵌套还是很开心的/*************************************************************************** * Copyright (C原创 2008-04-01 15:58:00 · 2289 阅读 · 0 评论 -
与realloc(): invalid next size:斗争了一天 总结
数据结构实验 要用顺序表实现栈 我想实现Push时栈空间不足就再申请 所以使用了realloc函数 以下代码编译通过 (gcc) 可是当我把栈元素类型换为double时 就出错了 郁闷 debug发现在第二次 realloc时出错 #include #include #include #define LI原创 2008-03-29 16:53:00 · 8187 阅读 · 1 评论 -
c语言字符串 数字转换函数大全
最近学数据结构老是做实验常用到字符串和数字的转换想找却发现网上的资料太散所以搜集整理一下 方便以后再用atof(将字符串转换成浮点型数)atoi(将字符串转换成整型数)atol(将字符串转换成长整型数)strtod(将字符串转换成浮点数)strtol(将字符串转换成长整型数)strtoul(将字符串转换成无符号长整型数)toascii(将整型数转换成合法的ASCII 码字符)toupper(将小写转载 2008-03-28 18:29:00 · 31259 阅读 · 8 评论 -
今天知道位域了 长见识了
今天看《是非人生》那几个菜程序员的水平让我感到欣慰原来我还没那么..........不过提到了一个 位域我倒真是没见过 立马百度http://baike.baidu.com/view/1256879.htm有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数转载 2008-03-23 22:18:00 · 483 阅读 · 0 评论 -
c语言关于for()的疑惑
今天才知道for的标准变化奶奶的 换了一个平台才能发现这些问题啊在kdevelop下写for(int i=0;i{}居然会报错 error: for loop initial declaration used outside C99 mode原来c99标准里才支持在for的初始化部分定义一个或多个变量,这些变量的作用域仅于本for语句所控制的循环体内。http://hi.baidu.com/原创 2008-03-24 16:59:00 · 708 阅读 · 0 评论 -
c语言简单判断cpu类型
虽然几乎没有悬念的 绝大多数的pc的cpu是little-endian不过这个程序的思路还是让我感到佩服当然 也是我太菜方法1定义联合结构体union endian_un { short var; char bits[sizeof ( short ) ]; };short 在32位下占2个字节 int 占4个字节然后var=0x0102这样字符数组也存上了这个数看看bits[0]里原创 2008-03-22 21:24:00 · 1374 阅读 · 0 评论 -
Linux命令实现(6) echo
这个恐怕是最简单的了本来我以为如果输入的是$PWD这样的环境变量需要进行相应的转换 没想到这个工作shell已经自动完成了所以只要#include int main(int argc, char *argv[]){ printf("%s",argv[1]); return 0;}我不知道如何关掉shell的这个功能就没法写真正的echo了不过得到环境变量的系统调用函数还是知道的原创 2008-03-20 16:57:00 · 810 阅读 · 0 评论 -
Linux命令实现(5)pwd
书上所给的例子太复杂我 我认为没有必要不就是返回当前工作目录的绝对录进吗我用getcwd()完成了好像是取巧了 没办法 我现在只会这么写char * getcwd(char *buf,int size)getcwd函数将返回的绝对路径名放在buf所指的数组中并返回buf size要比路径名长度至少大1#include #include #include #include int ma原创 2008-03-17 18:24:00 · 618 阅读 · 0 评论 -
Linux命令实现(2)cp
再接再励 完成cp//cp.c#include #include #include #include #define BUFFERSIZE 4096#define COPYMODE 0644void oops(char *s1,char *s2);void oops(char *s1,char *s2){ fprintf(stderr,"Error:%s",s1); perror(s原创 2008-03-14 20:27:00 · 602 阅读 · 0 评论 -
Linux命令实现(3) 简单的ls
以前以为写ls需要遍历目录什么的看了书才知道只要读取目录文件就可以了里面保存了此目录下的所有文件使用operdir(char *)读取目录文件返回DIR *readdir(DIR *)读记录 返回一个 struct dirent *关闭打开目录closedir(DIR *)dirent结构体里的d_name为文件名这是一个最简单的ls#include #include #include #incl原创 2008-03-16 15:53:00 · 694 阅读 · 0 评论 -
Linux命令实现(4) ls -l
使用了stat()终于实现读取文件的详细信息#include #include #include #include #include #include #include void do_ls(char[]);void dostat(char *);void show_file_info(char *,struct stat *);void mode_to_letters(int ,char[]);原创 2008-03-16 22:31:00 · 661 阅读 · 0 评论 -
Linux命令实现(1) who
想学Linux c编程 借来的书都千篇一律都是从读写文件到进程通讯和socket感觉没有VC的书丰富 学起来也很枯燥终于借到一本带实例的书Understanding Unix/Linux ProgrammingA Guide to Theroy and Practice一本在实例里教学的书我的目标是自己把Linux的主要命令写一遍先是简单的who读取/var/run/utmp文件 显示出来就可以了原创 2008-03-14 19:16:00 · 602 阅读 · 0 评论 -
extern用法详解(转)
1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进行了声明:extern char *a; 请问,这样可以吗? 答案与分析: 1)转载 2008-03-13 13:43:00 · 489 阅读 · 0 评论 -
标准c下生成一个字符串心得
我的图形化操作系统算法演示程序即将诞生我正在埋头苦干中今天的收获也挺多最近越来越感到c语言在处理字符串上不同于c++ java的地方c语言的字符串要么用数组(栈) 要么用指针(堆)而java和MFC有封装好的类 真是方便不过我坚信c是最牛x的在int转字符串上卡了一会itoa是MFC下的东西 害我找不到 不用spritf()就跟printf一样好使例如int process_no_count原创 2008-04-09 22:32:00 · 801 阅读 · 0 评论