C语言修饰词

原创 2008年10月03日 21:17:00
C语言真的很不容易学,我从刚开始接触C语言,到现在两年多了,这两年学得很卖力,但仍不敢说完全理解了,甚至不敢说“理解了”。别看C语言只有区区32个关键词,语法规则也简单得很,但其中包含的东西太多太多了,很多东西需要程序员在长期编程实践中细心体会。

  有些概念我在学C语言期间一直没有理解,学了x86汇编之后才有些明白了,回过头来想当时不理解是理所应当的。所以,我觉得C程序员都有必要从汇编和计算机原理的层面理解一下C语言内涵的一些东西。

  这些问题主要是围绕C语言的几个关键词产生的,还包括一些附加的修饰词(比如__stdcall)
  • extern 的含义: extern 表示一个内部使用的符号(变量或函数)的定义或实现不在本文件中,要求编译器将源文件中凡是用到这个变量或函数(的地址)时都用一个特定的符号来表示,编译成目标文件(.obj或.o),当程序与其它目标文件链接的时候再将这个符号表示的地址替换为实际值。
  • static 修饰符的作用:函数中使用和函数外使用的含义是截然不同的。
      (1) 函数内修饰变量,表示这个变量是私有于本函数的全局变量,变量初始化是在程序载入时完成的,不占用本函数的堆栈空间,函数返回后变量不丢失;
      (2) 函数之外修饰变量或函数,表示这个变量或函数仅属于本文件(编译生成的目标),不可于其它目标文件链接,也就是本文件中的一个私有全局变量或私有函数。
  • __inline 修饰
  • register 编译器建议: 仅仅是“建议”,是否“采纳”取决于编译器
  • volatile 编译指示
  • __stdcall, __fastcall, __cdecl 等对编译结果的影响

C语言修饰词之static

在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都...
  • H_armony
  • H_armony
  • 2011年09月09日 21:34
  • 854

C语言修饰词之violate

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值(From Mem...
  • broadCE
  • broadCE
  • 2015年02月10日 16:16
  • 407

c语言的____ 修饰词___总结

sno_guo的编写: 不断更新中。。。。。。 1,const  : 这个可以理解成只读的,但实际他的意义远远大于只读的含义。如编译器在看到这个const的时候,-O3操作后,程序会...
  • sno_guo
  • sno_guo
  • 2012年11月02日 22:52
  • 914

C语言修饰词之const

const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮...
  • H_armony
  • H_armony
  • 2011年09月09日 20:55
  • 776

Java修饰词总结

Java语言定义了public、protected、private、abstract、static和final这6常用修饰      词外还定义了5个不太常用的修饰词,下面是对这11个Java修饰词的...
  • jeffry_cheng
  • jeffry_cheng
  • 2007年07月04日 23:34
  • 1130

Java的访问权限修饰词

protected关键字可以说是为了继承而生的,如果没有继承,protected和private是一样的,表示只能被包内类访问;而对于继承于基类的导出类而言,却是可以访问的。 举一个实例来看:pac...
  • Trigl
  • Trigl
  • 2016年01月20日 23:26
  • 1172

IOS中属性的关键修饰词:strong weak assign copy retain等。。

@property与@synthesize是成对出现的,可以自动生成某个类成员变量的存取方法。在Xcode4.5以及以后的版本,@synthesize可以省略。 1.atomic与nonatomic...
  • gwjxl
  • gwjxl
  • 2015年02月09日 11:09
  • 1047

Java权限修饰词

1;什么是权限修饰符,他有什么作用,为什么需要他; 一个Java应用有很多类,但是有些类,并不希望被其他类使用。每个类中都有数据成员和方法成员,但是并不是每个数据和方法,都允许在其他类中调用。如何能...
  • zw1996
  • zw1996
  • 2016年11月20日 13:15
  • 988

继承中的类作用域

每个类定义自己的作用域,在这个作用域内我们定义类的成员。当存在继承关系时,派生类的作用域嵌套在其基类的作用域之内。如果一个名字在派生类的作用域内无法正确解析,则编译器将继续在外层的基类作用域中寻找该名...
  • tengyft
  • tengyft
  • 2015年04月23日 15:15
  • 786

c# 修饰词public, protected, private,internal的区别

要点总结: c# 修饰词public, protected, private,internal,protected的区别 public:  对任何类和成员都公开, 无限制访问; protecte...
  • chenjinglong
  • chenjinglong
  • 2013年10月02日 02:31
  • 7301
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言修饰词
举报原因:
原因补充:

(最多只允许输入30个字)