
c基础知识
文章平均质量分 78
lhb19891029
这个作者很懒,什么都没留下…
展开
-
assert用法总结
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:#i转载 2013-02-26 10:11:52 · 180 阅读 · 0 评论 -
c语言中Exit()与atexit()函数的使用
转自:http://blog.youkuaiyun.com/sruru/article/details/7941117一、exit()函数函数声明:void exit(int state);exit()函数用于在程序运行的过程中随时结束程序,exit的参数state是返回给操作系统,返回0表示程序正常结束,非0表示程序非正常结束。main函数结束时也会隐式地调用exit函数。exit函数运转载 2013-06-24 16:32:14 · 531 阅读 · 0 评论 -
typedef用法
typedef用来声明一个别名,typedef后面的语法,是一个声明。本来笔者以为这里不会产生什么误解的,但结果却出乎意料,产生误解的人不在少数。罪魁祸首又是那些害人的教材。在这些教材中介绍typedef的时候通常会写出如下形式: typedef int PARA; 这种形式跟#define int PARA几乎一样,如前面几章所述,这些教材的宗旨是由浅入深,但实际做出来的行为却是以偏盖全。的确,转载 2013-06-28 09:31:52 · 295 阅读 · 0 评论 -
typedef函数指针
转自:http://blog.youkuaiyun.com/qll125596718/article/details/68918811.简单的函数指针的应用形式1:返回类型(*函数名)(参数表) [cpp] view plaincopychar (*pFun)(int); char glFun(int a){ return;}转载 2013-06-28 09:56:09 · 222 阅读 · 0 评论 -
c语言内存对齐(1)
转自:http://www.cnblogs.com/cpoint/p/3369273.html一、什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就转载 2014-05-19 14:31:48 · 234 阅读 · 0 评论 -
memmove和memcpy函数的区别
转自:http://www.cppblog.com/colorful/archive/2012/04/23/172483.aspx1.memmove函数原型:void *memmove(void *dest, const void *source, size_t count)返回值说明:返回指向dest的void *指针参数说明:dest,source分别为目标串和源串转载 2013-07-17 09:59:49 · 272 阅读 · 0 评论 -
c语言内存对齐(2)
转自:http://www.cnblogs.com/cpoint/p/3369456.html转载 2014-05-19 14:35:59 · 250 阅读 · 0 评论 -
c语言内存对齐(3)
转自:http://www.cnblogs.com/cpoint/p/3369486.html在minix的stdarg.h文件中,定义了如下一个宏:/* Amount of space required in an argument list for an arg of type TYPE. * TYPE may alternatively be an expressi转载 2014-05-19 14:37:00 · 258 阅读 · 0 评论 -
posix多线程编程之条件变量
转自:http://blog.youkuaiyun.com/wallwind/article/details/7212163条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足,它常和互斥锁一起使用。使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程往往解开相应的互斥锁并等待条件发生变化。一旦其它的某个线程改变了条件变量,它将通知相应的条件变量唤醒一个或多个正被此条件变量转载 2013-06-06 17:01:55 · 267 阅读 · 0 评论 -
linux时间函数
转自:http://blog.youkuaiyun.com/water_cow/article/details/7521567系统环境:ubuntu10.04简介本文旨在为了解Linux各种时间类型与时间函数提供技术文档。1、Linux下常用时间类型Linux下常用时间类型有四种:time_t、struct tm、struct timeval、struct timespec转载 2013-07-11 09:19:09 · 277 阅读 · 0 评论 -
linux内核链表的分析
转自:http://blog.youkuaiyun.com/tigerjb/article/details/8299599前言:在Linux内核中使用了大量的链表来组织其数据,其采用了双向链表作为其基本的数据结构。但是与我们传统的数据结构中所学的双向链表又有着本质的一些不同(其不包含数据域)。其主要是Linux内核链表在设计时给出了一种抽象的定义。采用这种定义有以下两种好处:1是可扩展性,转载 2013-06-19 19:43:53 · 337 阅读 · 0 评论 -
makefile伪目标
最早先的一个例子中,我们提到过一个“clean”的目标,这是一个“伪目标”, clean: rm *.o temp 正像我们前面例子中的“clean”一样,即然我们生成了许多文件编译文件,我们也应该提供一个清除它们的“目标”以备完整地重编译而用。 (以“make clean”来使用该目标) 因为,我们并不生成“clean”这个文件。“伪目转载 2013-04-07 15:23:29 · 293 阅读 · 0 评论 -
Makefile变量定义解析
Makefile变量定义解析一般在我们书写Makefile时,各部分变量引用的格式我们建议如下:1. make变量(Makefile中定义的或者是make的环境变量)的引用使用“$(VAR)”格式。2. 出现在规则命令行中shell变量(一般为执行命令过程中的临时变量,它不属于Makefile变量,而是一个shell变量)引用使用shell的“$tmp”格式。3. 对出转载 2013-04-07 15:10:34 · 340 阅读 · 0 评论 -
c语言中二维数组及函数参数传递
先来回顾一下一维数组。一维数组的数组名即为指向该数组的指针,该指针值保存了数组存放在内 存中的一块连续区域的起始地址;数组的下标表示了这片内存区域的某存储区相对于起始地址的偏移量。简单来讲就是:指向一维数组的指针,指向数据存放区域的 起始位置。事实上,计算机系统的多维数组其实最终还是以一维数组的形式实现的。就N x M的二维数组来讲,设其数组名为array。指针array指向一个数组,该数转载 2013-04-15 20:47:07 · 416 阅读 · 0 评论 -
c语言参数类型提升
转自:http://www.spongeliu.com/325.html很久以前,我接触的最初几本C语言书中,我记得有类似这么一句话“C语言是一种弱类型的语言,类型之间可以进行隐式的转换;而C++是强类型的语言,需要进行强制类型转换”。我忘了是哪本书,但这句话我一直记得。因为实际写代码中一直也没有触碰隐式的转换(我一般都会强制转换),所以也没有深究过这个问题。然而最近的一段代码却给我带来了转载 2013-05-23 15:38:00 · 275 阅读 · 0 评论 -
c语言中声明的优先级规则
A 声明从它的名字开始读取,然后按照优先级规则顺序读取B 优先级从高到低依次是:B. 1 声明中被括号括起来的部分B. 2 后缀操作符: 括号()表示这是一个函数,而 方括号[]表示这是一个数组B. 3 前缀操作符:星号*表示 “指向...的指针” C 如果const和(或转载 2013-05-12 21:04:24 · 259 阅读 · 0 评论 -
算法的时间复杂度
转自:http://www.nowamagic.net/librarys/veda/detail/2195算法的时间复杂度定义为:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n}=0(f(n))。它表示随问题规模n的增大,算法执行时间的埔长率和 f(n)转载 2013-06-05 14:23:20 · 1113 阅读 · 0 评论 -
linux多线程入门
转自:http://blog.youkuaiyun.com/wallwind/article/details/7212946《线程》,对于一个程序员,如果不懂得线程,那么我觉得他对基础的高级程序还是没有入门的。线程里有几个概念,包括创建,终止,同步,调度,进程交互等概念。线程并不维持线程表,而是由一个进程维护。一个进程里的多个线程共享进程的地址空间。共享以下:转载 2013-06-06 15:35:24 · 291 阅读 · 0 评论 -
c语言static关键字的作用
转自:http://blog.youkuaiyun.com/wu_zf/article/details/70683261、概述 static 声明的变量在C语言中有两方面的特征: 1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。 2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这转载 2013-06-17 20:43:49 · 297 阅读 · 0 评论 -
c语言可变参数函数实现原理
转自:http://www.cnblogs.com/archimedes/p/variable-parameter.html转载 2014-05-19 15:17:44 · 271 阅读 · 0 评论