C语言关键字特点

C语言关键字特点,第1张

  • static:
    1、修饰变量和函数
    2、全局变量编译时赋初值,局部变量运行时初始化
    3、修饰的变量存放在数据区,生命周期同程序
    4、作用域为当前文件

  • inline:
    1、在编译时由编译器选择性展开,函数复杂时(包含循环语句等)可能作为函数编译
    2、由编译器校验展开后的正确性
    3、没有压栈开销
    4、不生成符号表
    5、只在release生效,debug不生成符号表但有函数压栈,用于调试

  • define:(预编译指令,非关键字)
    1、在预编译时展开
    2、仅做字符串替换,不校验逻辑

  • typedef
    1、重定义名称,类似define,但不是简单的宏替换,在编译时展开校验
    2、简化复杂的类型声明,例如定义函数类型、结构体等

  • const
    1、修饰变量的内容或者指向的内容不可改变,在编译运行时使用,占用存储单元
    2、const全局变量存储在只读数据段,编译期最初将其保存在符号表中,第一次使用时为其分配内存,在程序结束时释放
    3、const局部变量存储在栈中,代码块结束时释放

  • regitser
    1、修饰的变量尽可能的存放在CPU寄存器中,而不是内存中,不能取地址
    2、有基于寄存器的数量限制
    3、修饰的变量的不能大于整型的长度

  • volatile
    在两次读取变量时没有对变量值进行修改,编译器会对变量的值优化到寄存器读取,但变量在内存中的值可能会被其他程序或者线程修改
    1、提示编译器修饰的变量需要每次从内存中获取值,而不是寄存器,用于解决读取失效问题
    2、一般应用于多线程应用中被共享的变量

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/577715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存