当前位置: 首页 > news >正文

变量类型总是定义在变量前面吗?如何理解typedef定义的类型?

变量类型总是定义在变量前面吗?

非也。尽管C系语言遵循的基本原则是定义变量,类型在前面,名称在后面,但这并不是绝对。Go和Rust是这方面的先锋。

  • C/ObjC/C++/C#/Java 类型在标识符前。

  • Go/Rust/Swift/仓颉 标识符在类型前。

  • Python/JS/Shell 不需要指定类型。

  • VB稍显特殊,它的声明形式是:Dim xxx As yyy_type, 勉强算类型在变量后面。VB 9.0开始支持隐式本地变量,可省略类型交给编译器推导。
    Dim myNumber = 10

类型在前或在后有什么不同?

  • 从直面效果,仅仅是位置颠倒了,例如Go语言var a, b int = 1, 2, Rust语言let a: u32 = 100, 并没有影响编译器理解。

  • 从另外一个角度,对于一条声明/初始化语句的几个部分,变量、类型和声明/初始化,变量是不可缺少的,类型或者初始化是可省略的。以Go为例,可以省略类型var a = 100,或者省略初始化var b int.

如何理解typedef定义的类型?

大部分编程语言都支持由程序员自定义新类型,除了结构体、共同体明显的新类型,还有typedef由已有类型复制"新"类型,事实上,它就是原来的类型。用它的好处是可以统一内部类型定义。

  • 可防止编译器对同一个类型有不同定义
    比如为了统一32bit类型为U32, 可以定义typedef int U32, 有的编译器long是32位时可定义成typdef long U32.

  • 和Shell的alias类似,程序员可以选择自己更喜欢的类型名,而不是古板遵循语言标准,也许还可以节省Coding字符数。

编译器内部typedef的处理

  • 编译器可能会建立typedef类型列表,对应已有的类型,在处理上会按照原本类型来看,并没有什么特别。


若文章对您有帮助,欢迎关注。助您在编程路上越走越好!

微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。


http://www.mrgr.cn/news/54505.html

相关文章:

  • 科研进展 | RSE:全波形高光谱激光雷达数据Rclonte系列处理算法一
  • MyBatis入门程序之客户添加、更新与删除
  • VTK的学习方法-第一类型应用
  • Qt中使用线程之QThread
  • 数据治理(1)-数据规划
  • 【Flutter】Dart:环境搭建
  • 使用Markdown-it插件实现在页面渲染markdown
  • 汽车票在线预订:SpringBoot技术实践
  • 包子凑数
  • 阿里云盘企业版收费标准,不同人数、存储空间版本是有区别的
  • Atlas800昇腾服务器(型号:3000)—YOLO全系列NPU推理【检测】(五)
  • R语言复杂抽样调查数据统计描述和分析
  • LeetCode-三数之和-Java
  • SpringBoot民宿预订系统设计与实现
  • manjaro kde 磁盘扩容
  • 基于SpringBoot+Vue实现九峰山旅游平台系统
  • 2025考研各省网上确认时间汇总!(别忘记)
  • Miniconda3 Linux安装教程
  • 垃圾收集器与内存分配机制(三)
  • 父母教养方式测试:理解与优化家庭教育的关键
  • 动态内存管理(上)
  • 偏差和均方根误差,偏差小,拟合的好,均方根误差小,波动程度小
  • 网络数据谁来监管?——法律许可下的用户数据获取与风险解读
  • spark、hadoop和hive自学路线
  • 简易的网站数据流动过程介绍 -- 用户注册/登录逻辑
  • 云开发之Github仓库代码利用