随笔分类 -  C语言

摘要:博客已经迁移csdn http://blog.csdn.net/u013372900 博客园我很喜欢是源于他的可扩展性,可以自己去改,但遗憾的是博客园的速度似乎不是很给力。IT能有今天的 发展是源于无数热心的网友源于分享自己的问题和解决方法,但是遗憾的是当前一个风气是记什么某知,某道笔记 将技术封闭 阅读全文
posted @ 2017-06-25 20:57 张飞online 阅读(368) 评论(0) 推荐(0)
摘要:#define offsetof(struct_t,member) ((int)&((struct_t *)0)->member) 这个东西很多人应该知道: offsetof是用来判断结构体中成员的偏移位置。他是一个宏定义。 (struct_t *)0是一个指向struct_t类型的指针,其指针值为 阅读全文
posted @ 2016-12-22 18:17 张飞online 阅读(1908) 评论(0) 推荐(0)
摘要:都是把格式好的字符串输出,只是输出的目标不一样:1 printf,是把格式字符串输出到标准输出(一般是屏幕,可以重定向)。2 sprintf,是把格式字符串输出到指定字符串中,所以参数比printf多一个char*。那就是目标字符串地址。3 fprintf, 是把格式字符串输出到指定文件设备中,所以 阅读全文
posted @ 2016-10-30 16:08 张飞online 阅读(741) 评论(0) 推荐(0)
摘要:分析之前先搞明白,这个二级指针其实在函数内部是承接了上个线程的返回值。 看man手册,发现返回值是个普通指针。人家用二级指针来承接,可能准备干大事。这个可以自己搜索一下。原因嘛,二级指针是保存了这个地址。一级指针承接的话就是这个地址。 那既然二级指针保存了,我们如何访问那?开始我觉得直接来个二级指针 阅读全文
posted @ 2016-10-18 22:02 张飞online 阅读(2694) 评论(0) 推荐(0)
摘要:版权声明:本文为博主原创文章,未经博主允许不得转载。 版权声明:本文为博主原创文章,未经博主允许不得转载。 首先,介绍一下两种扩展的定义 转 http://blog.csdn.net/jaylong35/article/details/6160736 符号扩展:当用更多的内存存储某一个有符号数时,由 阅读全文
posted @ 2016-10-17 22:00 张飞online 阅读(1806) 评论(0) 推荐(0)
摘要:当然这里,我更重要的是强调这个什么段,什么段。这以前就知道。但其实是对一个可以执行的c语言程序的分析。就好比你分析一篇作文。有标题。有段落。 .out文件就是扩展名为out的文件,它本身不代表任何信息。在Linux中判断文件是否是可执行文件,首先要看文件的属性是否是可执行的,它没有一个默认的扩展名表 阅读全文
posted @ 2016-10-16 20:48 张飞online 阅读(22993) 评论(0) 推荐(1)
摘要:无标题 (5) 今天谈谈流,什么是IO流? 流是磁盘或其它外围设备中存储的数据的源点或终点。这是在《C程序设计语言》上的原话。流主要是指一种逻辑上的概念,它提供或存储数据。产生数据的叫输入流,消耗数据的叫输出流。至于怎么产生,又怎么消耗,这是一种物理上的实现,根据每种设备有所不同,但C语言中对它们一 阅读全文
posted @ 2016-10-15 13:57 张飞online 阅读(1461) 评论(0) 推荐(0)
摘要:1.引出我们的问题? 标准c库都是一样的!大家想必都在windows下做过文件编程,在linux下也是一样的函数名,参数都一样。当时就有了疑问,因为我们非常清楚 其本质是不可能一样的,源于这是俩个操作系统啊!但由于c标准库的封装就实现了接口一样。但是如果往深入,我们就非常清楚了在这层封装上还有一层封 阅读全文
posted @ 2016-10-14 23:32 张飞online 阅读(1728) 评论(0) 推荐(0)
摘要:就不打字了,自己回答别人问题时的答案 再分析其实还是用的普通指针 阅读全文
posted @ 2016-10-14 19:40 张飞online 阅读(475) 评论(0) 推荐(0)
摘要:结构体指针 结构体指针大家想必都非常清楚,我们也一直强调传参的时候使用结构体指针(占用4字节),减少对栈的压力。但是今天看linux的标准io时候。发现了localtime时间函数 返回值是一个结构体指针。当时有点懵逼了,开始觉得这样就不对。{当然肯定是我想多了} 为什么会觉得不对那?因为它是个子函 阅读全文
posted @ 2016-10-14 12:36 张飞online 阅读(1151) 评论(0) 推荐(0)
摘要:c语言头文件中定义全局变量的问题 (转http://www.cnblogs.com/Sorean/) 先说一下,全局变量只能定义在 函数里面,任意函数,其他函数在使用的时候用extern声明。千万不要往头文件里面写定义(int aa)。 即使是写,也只写声明 即可 extern int aa。 问题 阅读全文
posted @ 2016-10-11 14:20 张飞online 阅读(7385) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/xiaohouye/article/details/52084770(转) Gcc的编译流程分为了四个步骤: 1.预处理,生成预编译文件(.文件): Gcc –E hello.c –o hello.i 2.编译,生成汇编代码(.s文件): Gcc –S he 阅读全文
posted @ 2016-09-29 15:09 张飞online 阅读(5440) 评论(0) 推荐(0)
摘要:内存对齐的规则以及作用 Posted on 2009-03-16 09:36 蜗牛先生 阅读(23409) 评论(19) 编辑 收藏 引 首先由一个程序引入话题: 1 //环境:vc6 + windows sp2 2 //程序1 3 #include 4 5 using namespace std; 6 7 struc... 阅读全文
posted @ 2016-09-29 09:58 张飞online 阅读(789) 评论(0) 推荐(0)
摘要:一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。2. 对齐的作 阅读全文
posted @ 2016-09-28 21:07 张飞online 阅读(196) 评论(0) 推荐(0)
摘要:struct内存对齐:gcc与VC的差别 内存对齐是编译器为了便于CPU快速访问而采用的一项技术,对于不同的编译器有不同的处理方法。 Win32平台下的微软VC编译器在默认情况下采用如下的对齐规则: 任何基本数据类型T的对齐模数就是T的大小,即sizeof(T)。比如对于double类型(8字节), 阅读全文
posted @ 2016-09-28 20:33 张飞online 阅读(952) 评论(0) 推荐(0)
摘要:1.首先来说,函数指针 就是函数的指针 2.指针函数,就是指针的函数。也就是返回值是个指针 一、指针 【1】指针 1 指针变量:用于存放地址量的变量 2 地址常量 int a = 20; int *p = &a; 【2】运算符 1 & 2 *(指针解引用):通过地址获取其内容 3 []:只针对于指针 阅读全文
posted @ 2016-09-27 19:01 张飞online 阅读(506) 评论(0) 推荐(0)
摘要:C语言中的结构体是一个小难点,下面我们详细来讲一下:至于什么是结构体,结构体为什么会产生,我就不说了,原因很简单,但是要注意到是结构体也是连续存储的,但要注意的是结构体里面类型各异,所以必然会产生内存对齐的问题。也就是内存里面会有空档。 1.结构体的定义和赋值 2.定义结构体变量的俩种方法: 3.结 阅读全文
posted @ 2016-09-27 18:47 张飞online 阅读(37676) 评论(0) 推荐(0)
摘要:今天下午写篇博客吧,分析分析c语言中函数调用的本质,首先我们知道c语言中函数的本质就是一段代码,但是给这段代码起了一个名字,这个名字就是他的的这段代码的开始地址 这也是函数名的本质,其实也就是汇编中的标号。下面我们会接触到一些东西 比如 eip 就是我们常常说的程序计数器,还有ebp和esp (这里 阅读全文
posted @ 2016-09-24 17:43 张飞online 阅读(3469) 评论(0) 推荐(0)
摘要:首先,需要明确main函数是什么? 答:main函数是C语言约定的入口函数 C99标准里面是这样描述的: The function called at program startup is named main.The implementation declares no prototype for 阅读全文
posted @ 2016-09-23 20:26 张飞online 阅读(6352) 评论(0) 推荐(0)
摘要:在鸟哥的私房菜的一书中,介绍了UNIX的版本以及众多的SHELL版本。 早在UNIX年代,发展者众多,所以由于shell依据发展者的不同就有许多版本,比如sh,C SHell,K SHell,还有TCSH等,每一种Shell都各有特点。当然也有我们的bash,bash这个shell是Bourne S 阅读全文
posted @ 2016-09-21 20:09 张飞online 阅读(995) 评论(0) 推荐(0)