volcanol的工控博客
Email : lilinly225@126.com 索要资料加QQ 点击进入 或 点击左侧的资料分享专用帖

volcanol ---- View OF Linux Can Appreciate Nature OF Linux

天行健,君子以自强不息

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

随笔分类 -  C_Program_Category

1 2 下一页

C语言学习
摘要:没什么新的内容,把自己写的练习代码贴出来,供大家批判。 阅读全文
posted @ 2017-06-19 10:52 volcanol 阅读(353) 评论(0) 推荐(0)

摘要:最近再次复习C++语言,用的教材是《C++ Primer》这本教材, 看到第二章的时候,里面有个问题困扰了我。于是想上网查查怎么回事, 结果看了很久都没有得到一个满意的答案。 书上有这么一段话:当将一个超出数据类型取值范围的值赋值给这个类型的一个变量时,变量的值的结果由变量的类型决定。 后面还... 阅读全文
posted @ 2014-09-22 22:13 volcanol 阅读(8995) 评论(12) 推荐(1)

摘要:为什么写这篇文章呢? 为什么要弄这么个题目呢? 首先解释为什么用这个题目。这一切都要从那天在QQ群中的讨论说起,那天在群中,一个哥们问了一个关于(void)0 的问题。然后大家说到了(void)0和(void*)0; 大家看看(void)0 和(void*)0 ,是不是一个像个平胸的小妹,一个像个丰韵的美女。 他问的的问题如下:(void)0; //这个语句在C语句中可以执行吗? 我想了一下这个语句应该没有什么问题,在没有用(void)0,去影响内存对象的情况下,应该是可以的。下面是我在FC 14中进行测试的结果。[volcanol@volcanol c]$ lsa.out ... 阅读全文
posted @ 2013-06-22 21:11 volcanol 阅读(2412) 评论(7) 推荐(4)

摘要:我记得在以前的一篇随笔中,我堆windows下的<assert.h>进行了分析,今天我们来看看gcc中这个文件的定义是怎样的。【1】assert宏的作用 assert宏实现断言的作用,一般在源文件中引用格式如下:#include <assert.h>#undef NDEBUGassert(expression)关于assert宏: 1、当 expression的值为0时进行断言,如果表达式expression的值非零,则不进行断言。 2、assert宏进行断言的时候,在标准错误输出中输出断言发生的源文件名称:__FILE__ 和断言发生时语句所在的行: __LINE__ 阅读全文
posted @ 2013-05-25 20:34 volcanol 阅读(1119) 评论(0) 推荐(0)

摘要:昨天晚上下载了一份GCC V1.42的代码,不知道是源代码本身有问题,还是下载的源代码有问题,看的第一个C文件就存在一些很奇怪的情况。 首先要说的是: alloca.c 文件的作用,alloca.c文件的函数实现动态堆空间的分配,即运行时堆栈空间分配。【1】源代码 1 /* 2 alloca -- (mostly) portable public-domain implementation -- D A Gwyn 3 4 last edit: 86/05/30 rms 5 include config.h, since on VMS ... 阅读全文
posted @ 2013-05-24 23:05 volcanol 阅读(1903) 评论(6) 推荐(0)

摘要:前些日子,在QQ群里面,发现一些朋友在讨论函数返回后,为什么值可以传递和地址传递的情况;我也感到很好奇,于是就跟了一下。int* sum(int x,int y){ int a; a=x|y; return &a;} 很显然这段代码,存在一些问题;但是在VC2008中编译一切正常,运行状态也一切正常。下面是我的测试代码:#include <stdio.h>int* sum(int x,int y){ int a; a=x+y; return &a;}int getsum(int x,int y){ return x+y;}in... 阅读全文
posted @ 2013-05-09 23:30 volcanol 阅读(507) 评论(7) 推荐(0)

摘要:【字符编码】 在计算机系统中,所有的数据都经过编码进行处理。在计算机中有多种编码方式,最常见的有: 1、无符号编码: 基于二进制的编码,表示大于0或者等于0的数字 2、二进制补码:表示有符号整数的最常见形式。 可以表示负数、0、正数 3、浮点数编码:以2为基的表示实数的科学计数法; 浮点数的可以这么认为: 尾数*2^幂; 通过这个表达式我们可以基本看到浮点数在计算机中的存储模式。例如:在C语言中float型实数, Bit15.....bit9 bit8......bit0 bit15-bit9可以用来表示尾数,而Bit8....Bit0则可以表示2的幂次,然后通过系统换算就可以... 阅读全文
posted @ 2013-04-13 20:37 volcanol 阅读(501) 评论(0) 推荐(0)

摘要:最近一直看这本书,发现里面的习题真的太经典了,很多习题看是简单,但是要真正的做好,还真需要费很大的事。【习题1.10】 这里我们先根据习题1.9的套路给出一个程序。/* 本程序用来将输入的制表符、退格符显式输出,将反斜杠以"\\"的形式输出*/#include <stdio.h>int main(int argc,char* argv[]){ short int Input; while(EOF !=(Input=getchar())) { switch(Input) { case '\t': put... 阅读全文
posted @ 2013-04-12 12:37 volcanol 阅读(449) 评论(6) 推荐(2)

摘要:上一次的文字把Hello world程序说了一点,今天继续就习题说道说道。【1.5 字符输入/输出】 K&R的C书里面说过一段话: 1、标准输入输出库的输出模型: 无论文本从何处输入和输出,其输入和输出都是按照字符流处理。 2、文本流:文本流是由零行或者多行字符构成的字符序列,而每行文字则是由零个字符或者多个字符组成;而不管有没有字符,行末尾则是一个换行符。 标准库的输入和输出函数都按照这个规则处理。(1)回显输入的内容 我的测试代码,如上所示,测试情况如下所示, 这里有个问题,如果利用上面的代码我们如何输入 EOF 字符呢? 如上面的运行结果是:Ctrl + Z... 阅读全文
posted @ 2013-04-10 23:01 volcanol 阅读(367) 评论(2) 推荐(0)

摘要:前天收到了K&R的中文版的书,期盼已久的书啊,心情有点小激动。【练习1-1】 在“Hello world”程序中制造混乱。 这个我倒不是很想做,因为我自己不是个制造混乱的人,虽然有时在写代码的时候不能由自己控制,我倒是希望能在代码中寻找 ladybug,嘻嘻。这里我们来看点别的:1、ELF 我们在Linux下面编译好后Hello world程序后,运行的过程很简单;但是我一直想探探,这里到底发生了什么。如果你对机器码比较精通,那么od可以帮你解决这个问题,可问题是我不明白,因此我需要“曲线救国”。 我是这么编译的: gcc -Wall hello.c -o hello 很... 阅读全文
posted @ 2013-04-02 21:42 volcanol 阅读(374) 评论(1) 推荐(1)

摘要:前两天我在一个QQ群里面,看到一个群友发了一段“奇特的”C++代码,应该算是C++吧,我也说不准了。下面我们看看整个的讨论过程。 上面是我大体截取的部分对话过程,应该是连贯的,这里我就迷惑了,给他们一弄我动摇了,动摇的不是我对这个推理过程的认识,而是我无语的动摇了。 这里我对VTC_King同学的这种探索精神表示赞赏,俗话说:尽信书不如五书。 下面是我对这个程序的执行过程: 从上面的过程来看,程序如我所说,成功的编译,而且我开启的是-Wall编译选项;而且程序编译后成功执行,但是输出的结果也和我预想的一样,没有输出:Yes. 那么我们如何看这个过程呢? 为了弄明白这个过程,我可... 阅读全文
posted @ 2012-12-30 22:27 volcanol 阅读(2814) 评论(24) 推荐(3)

摘要:一、引 我一直不明白“文人相轻”是什么意思,也许就是说:文人清客之间互相瞧不起的事情吧。但对于我来说,文人相轻就是表示:无知者无畏。无论你的某一方面的语言学的怎么样,怎么样的牛逼,你可以眼光狭窄,你可以只看到你专注的领域,但是你不可以心胸狭窄;眼光狭窄的你可以专注某一个领域,你一样可以成为大家;但是如果你心胸狭窄的话,就算成为大家,也不会是一个令人钦佩的大家。 我是一个学自动化的,对于计算机科学有着独特的爱好,或者说是对可以自己创造东西有着特殊的爱好,因为学计算机编程可以不需要很多的硬件设施就可以看到自己创造的东西;而从事自动化,虽然也编程,但是如果没有一些特殊的硬件,编写的程序基本也就... 阅读全文
posted @ 2012-06-26 05:27 volcanol 阅读(7497) 评论(0) 推荐(0)

摘要:今天在Gmail的群组讨论贴中看到这样一个帖子:[learn-linux-c-cpp] 一维数组转成指向数组的指针收件箱x zhangzhe benzhemin@gmail.com11-10-28发送至 learning-linux. 还请大家讨论一下:代码:#include <stdio.h>int main(void){ int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int (*p)[2] = (int (*)[2])a; printf("%d\n", **p); printf("%d\n", 阅读全文
posted @ 2012-06-11 11:49 volcanol 阅读(800) 评论(0) 推荐(1)

摘要:编辑器加载中... 这里不讨论任何内容,仅列出FILE 类型的定义;不知那位大神对FILE类型很精通,求教于此,叩首先。 #ifndef _FILE_DEFINED struct _iobuf { char *_ptr; int _cnt; char *_base; int _flag; int _file; int _charbuf; int _bufsiz; char *_tmpfname; };typedef struct _iobuf FILE;#define _FILE_DEFINED #end... 阅读全文
posted @ 2012-04-02 08:38 volcanol 阅读(697) 评论(3) 推荐(0)

摘要:前些时候,贴了一段微软的printf代码,园子里的大侠们说要看看output的代码,这不最近有幸看了微软的output代码,所以贴上来给园子里大侠看看。 Tip: 源代码版权归微软所有,这里仅贴出来供大家看看。/****output.c - printf style output to a FILE** Copyright (c) 1989-1991, Microsoft Corporation. All rights reserved.**Purpose:* This file contains the code that does all the work for the* p... 阅读全文
posted @ 2012-03-18 11:22 volcanol 阅读(1387) 评论(2) 推荐(4)

摘要:最近看了一本书,书上描述了各种比较有意思的著名命题; 想想为了提高自己C语言的实践水平,决定对立面的命题进行实践。下面描述的一个问题是: 平台问题。/*最长平台问题: 存在已排序数组,数组中的一个平台就是连续的一串 值相同的元素,并且这一串元素不能再延伸。 例如: 1,2,2,3,3,3,4,5,5,6 中有平台 1 2.2 3.3.3 4 5.5 6 并且最长平台是:3.3.3*/ 然后就自己是实现了一个解决方案,代码如下:Exp_1: 头文件:#if... 阅读全文
posted @ 2012-03-03 19:20 volcanol 阅读(579) 评论(0) 推荐(0)

摘要:/* 本程序测试线性队列的数据结构*/#include <stdio.h>#define MAXSIZE 1024typedef struct node{ int data[MAXSIZE]; int length;} SeqList;/*函数功能: 初始化线性队列函数原型: void SeqListInit(SeqList *pSeqList,int n)函数参数: SeqList *pSeqList: 待初始化队列首指针 int n:数据元素的个数异常: 传递空指针, 数据元素的个数大于 MAXSIZE*/void ... 阅读全文
posted @ 2012-02-11 15:57 volcanol 阅读(750) 评论(1) 推荐(0)

摘要:最近看C库,简单的学习了一下assert和setjmp库的功能,贴点心得。/* 本程序测试库函数,用来学习、理解库*/#include <stdio.h>/*测试:assert宏 与 NDEBUG的关系Tip: 经过各种测试,为了取消 assert 宏,必须在它之前定义NEDBUG; 这里也说明一个问题,宏的定义和引用是有先后顺序的 如果 #undef NDEBUG #define NDEBUG 在 #include <assert.h> 之后定义 NDEBUG 宏,那么就不能取消assert宏这里有一个比较特殊的性能... 阅读全文
posted @ 2012-02-11 15:54 volcanol 阅读(1716) 评论(4) 推荐(0)

摘要:今天在ChinaUnix下看到一篇文章,讨论一些关于数组名和指针的关系,原帖的链接为:http://bbs.chinaunix.net/thread-871769-1-994.html 感觉楼主写的文字还是挺不错的,不过里面未免有些内容有些误导,在此谈一些我个人的看法。Exp1:#include <iostream.h> int main(int argc, char* argv[]){ char str[10]; char *pStr = str; cout << sizeof(str) << endl; cout << sizeof(pStr 阅读全文
posted @ 2012-02-02 23:27 volcanol 阅读(1877) 评论(24) 推荐(2)

摘要:1、GNU C 参考手册http://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html2、伊利诺伊大学 ACM C 参考手册 库函数http://www.acm.uiuc.edu/webmonkeys/book/c_guide/3、蓝色巨人 C/C++ 参考手册http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Fcplr233.htm4. ANSI C 参考手册ww 阅读全文
posted @ 2012-01-31 18:46 volcanol 阅读(617) 评论(2) 推荐(1)

1 2 下一页
volcanol ----View OF Linux Can Appreciate Nature OF Linux。