易截截图软件、单文件、免安装、纯绿色、仅160KB

关于C的思考


关于C的思考
Cong Wang
May, 2006
Network Engineering Department
Institute of Post and Telecommunications, Xi'an, P.R.China
引言
    C语言结合了汇编的所有威力,它的抽象程度碰巧既满足了程序员的要求, 又容易实现。因其独特的灵活性和强大的可移植性,系统程序员和黑客们更是对它钟爱有加。无疑,C语言获得了空前的成功,在某种程度上甚至比UNIX还要成功。然而,“C语言就像一把刻刀,简单,锋利,并且在技师手中非常有用。和任何锋利的工具一样,C会伤到那些不能驾驭它的人。” [8]C语言灵活性的背后,有着很多的要注意和避免的地方,一不小心你就会陷入bug的泥潭。所以也无怪乎只有C语言才有像《The C Puzzle Book》,《Obfuscated C and Other Mysteries》,《C Traps and Pitfalls》之类的书。下面的文章不是对那些书中提到的问题的重复,而是对其它一些细小的地方和部分C库函数进行讨论。 大部分都会集中到标准C上,参考的标准是ISO C99,一小部分可能会涉及到具体平台。
一. sizeof与return
    sizeof不是函数,而是一元操作符,没必要给它后面的表达式加括号。但如果计算的是一种类型的大小,sizeof就需要加一个圆括号,但这不是说它是一个函数。 return不是函数,而只是关键字,也不需要圆括号。还要特别注意的是sizeof操作符“返回”的是无符号整数(size_t),如果把它的“返回值”和一个int类型比较,先要把它转化成有符号整数。另外,Unix系统调用read/write的返回类型是ssize_t,而不是size_t。 ssize_t代表signed size。
二. 0.0, 0, '\0' vs NULL,NUL
    NULL表示的是空指针,它和任何非空指针值都不相等。而NUL就是'\0',表示的是值为0的空字符。虽然0.0, 0, '\0', NULL都是完全由0比特组成,但是它们的长度不同。0.0是双精度,通常是8个字节;'\0'是字符常量,通常只有1个字节;NULL表示空指针,它的长度由系统决定,也就是系统中储存一个内存地址所需的字节数;0表示整数,一般是4个字节。它们的类型不同,在用它们给变量赋值时应该小心,有必要时进行强制转换。注意:C语言不保证char总是8个比特,也有7个或9个比特的字符!虽然没有规定short是16个比特,int是32个比特,但是在目前的所有构架上都是如此。 long并不总和int一致,它与机器字长一致,也就是说在32位机上它是4个字节,而在64位机上是8个字节。 l


相关文档:

学习C与Java的类比

大学的时候选修过一个学期日语,当时日语老师对我们说:“对于中国人来讲,学习英语一般是哭着进去,笑着出来;学习日语则是笑着进去,哭着出来”。意思就是说学习英语的时候,入门的时候比较困难,但是只要坚持学下去,转变了汉语的思维习惯时,最近可以把英语学得很好。而日语不同,一方面因为其与汉语的紧密关 ......

经典C/C++面试题(三)2

32)
  int main()
  {
   int x=3;
   printf("%d",x);
   return 1;
  }
  问函数既然不会被其它函数调用,为什么要返回1?
  mian中,c标准认为0表示成功,非0表示错误。具体的值是某中具体出错信息
33) 要对绝对地址0x100000赋值,我们可以用(unsigned int*)0x100 ......

经典C/C++面试题(四)

(五)
40. 链表题:一个链表的结点结构
struct Node
{
int data ;
Node *next ;
};
typedef struct Node Node ;
(1)已知链表的头结点head,写一个函数把这个链表逆序 ( Intel)
Node * ReverseList(Node *head) //链表逆序
{
i ......

C读取文件的一行

刚刚完成的C读取文件一行数据,可以读大量数据的行。
/*
函数功能:
   读取文件的一行,当开辟内存不够时return值为-1,size会给出至少需要的内存大小,
      return值为1时表示此时文件结束,从buffer,size得到最后一行的数据和大小。
输入参数:
   stream:文件流 ......

详解C盘Windows文件夹里重要文件的作用

详解C盘Windows文件夹里重要文件的作用 
在整个Windows操作系统中,最重要的莫过于“Windows”文件夹,对电脑进行任何操作几乎都有关。了解这里对于掌握整个系统的运作有很大的作用,如果有兴趣不妨往下看看。
一、印象中的Windows文件夹
“Windows”文件夹给人的第一印象就是大而乱,感觉里面 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号