• C语言 符号的不同意义


    C语言的许多符号在不同的上下文环境里有不同的意义,相当于被“重载”了。如下展示了一些符号的不同意义。

    static

    • 在函数内部,表示该变量的值在各个调用间一直保持延续性。类似与全局变量,区别在于作用域不同。
    • 在函数外部,表示该函数或者变量只对本文件可见。

    extern

    • 用于函数定义,表示全局可见(属于冗余,因为函数名在默认情况下具有外部的链接属性,如果函数没有在调用它的转换单元中定义,编译器就会把这个调用标记为外部,让链接程序处理它)
    • 用于变量,表示它在其他地方定义(变量名和函数不同,当某个名称的定义对于当前转换单元来说是外部的,如果希望用一个名称访问当前装换单元外的变量,就必须用 extern 关键字来声明该变量,表示该名称在当前块的外部定义。之后编译器就把变量标记为具有外部链接属性,链接程序就会在名称和它引用的变量之间建立链接。如果给定块中的一个名称有 extern 声明,就不能在同一个块中定义该名称)
    • 一般而言,使用 extern 有2中方式:第一种是在 C 文件中直接声明某个其他文件中定义的函数或全局变量为 extern,从而告诉编译器这个函数或变量是在其他 C 文件中定义的;第二种是在头文件中声明某个函数或变量为 extern,然后在需要引用该函数或变量的 C 文件中包含这个头文件。第二种是比较好的方式,因为头文件只需要编写一次就可以在其他所有需要引用这些函数或变量的 C 文件中被包含,相应地如果函数定义或者变量的定义发生了变化,也只需要修改头文件一个文件就可以了,否则必须修改所有引用这些外部函数或变量的 C 文件。

    void

    • 作为函数的返回类型,表示不允许返回任何值
    • 在指针声明中,表示通用指针的类型
    • 位于参数列表中,表示没有参数

    *

    • 乘法运算符
    • 用于指针,间接引用
    • 在声明中,表示指针

    &

    • 位的 AND 操作符
    • 取地址符号

    ()

    • 在函数定义中,包围形式参数表
    • 调用一个函数
    • 改变表达式的运算次序
    • 将值转换为其他类型(强制类型转换)
    • 定义带参数的宏
    • 包围 sizeof 操作符的操作数

    其他

    • <= 小于等于运算符
    • <<= 左移复合赋值运算符
  • 相关阅读:
    视频列表页面滑动时停止视频播放
    小程序跳转到另外一个小程序的设置
    小程序悬浮框
    wx.previewimage预览返回会触发onshow的处理方法
    uni-app小程序滑动事件
    小程序转uni-app用到的一些方法
    第四阶段:DRF day82 DRF--DRF中三大认证中的jwt和频率模块解析
    第四阶段:DRF day81 DRF--DRF中三大认证中认证模块和权限模块详解
    第四阶段:DRF day80 DRF--DRF中的视图家族及工具视图类
    第四阶段:DRF day79 DRF--DRF中通过ModelSerializer实现单查单增群查群改等操作
  • 原文地址:https://www.cnblogs.com/cyang812/p/8954564.html
Copyright © 2020-2023  润新知