C语言修饰词

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值