C中的typedef数组类型

 mobiledu2502874455 发布于 2023-01-09 14:33

typedef int arr[10]

据我所知,上面的语句为int [10]定义了一个新名称

arr intArray;

相当于

int intArray[10];

但是,我对这样做的惯例感到困惑.在我看来,这

typedef int arr[10]

令人困惑,对我来说是一个明确的方式

typedef int[10] arr

即我将"int [10]"定义为一个名为arr的新类型

但是,编译器不接受这一点.

我可以问为什么?它只是C语言的惯例吗?

1 个回答
  • 很早版本的C没有typedef关键字.当它被添加到语言中时(1978年之前的某个时间),它必须以与现有语法一致的方式完成.

    从语法上讲,关键字typedef被视为存储类说明符,就像externstatic,即使它的含义完全不同.

    就像你写的那样:

    static int arr[10];
    

    你写的:

    typedef int arr[10];
    

    typedef声明视为与对象声明类似的东西.不同之处在于它创建的标识符(arr在本例中)是类型名称而不是对象名称.

    2023-01-09 14:36 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有