
C语言/LinuxC
yinwei520
这个作者很懒,什么都没留下…
展开
-
野指针
<br />野指针 <br /> “野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种: <br /> 一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。 <br /> 二、指针p被free或者delete之后,没有置为NULL,转载 2010-12-05 11:31:00 · 1063 阅读 · 0 评论 -
用函数判断系统是Big Endian还是Little Endian
<br />#include <stdio.h>;union { long Long; char Char[sizeof(long)];}u;int main(void){ u.Long = 1; if (u.Char[0] == 1) printf("addressing is right-to-left/n"); else if (u.原创 2011-01-03 15:58:00 · 1254 阅读 · 0 评论 -
C中的return语句
<br /> return是C++预定义的语句,它提供了种植函数执行的一种放大。当return语句提供了一个值时,这个值就成为函数的返回值. <br /> 在函数中,如果碰到return 语句,那么程序就会返回调用该函数的下一条语句执行,也就是说跳出函数的执行,回到原来的地方继续执行下去。但是如果是在主函数中碰到return语句,那么整个程序就会停止,退出程序的执行。<br /> <br />如果你定义一个函数有返回类型,可以想下面那样调用: <br />int func() <br />{原创 2010-11-12 10:57:00 · 1065 阅读 · 0 评论 -
数据区,代码区,堆区,栈区
<br />一般全局变量存放在数据区,局部变量存放在栈区, <br />动态变量存放在堆区,函数代码放在代码区。 <br />--------------------------------------------------------------- <br /><br />栈区是普通的栈数据结构,遵循LIFO后进先出的规则,局部变量安排在那里是ASM时就规定的,这样可以在一个函数结束后平衡堆栈,操作简单,效率高 <br />堆(动态区)在这里应当叫堆栈(不要和数据结构中的堆搞混)是程序在编译时产生的一块原创 2010-11-12 22:41:00 · 5551 阅读 · 0 评论 -
GCC内嵌汇编
GCC内嵌汇编刺猬@http://blog.youkuaiyun.com/littlehedgehog AT&T手册里面的,我整理了下,方便阅读 内核代码绝大部分使用C 语言编写,只有一小部分使用汇编语言编写,例如与特定体系结构相关的代码和对性能影响很大的代码。GCC提供了内嵌汇编的功能,可以在C代码中直接内嵌汇编语言语句,大大方便了程序设计。 简单的内嵌汇编很容易理解 例转载 2011-06-16 11:58:00 · 803 阅读 · 0 评论