gpt4 book ai didi

c++ - 请解释 "typedef"的语法规则和范围

转载 作者:IT老高 更新时间:2023-10-28 12:38:47 24 4
gpt4 key购买 nike

规则是什么? OTOH 简单的案例似乎暗示新类型是一行的最后一件事。像这里 Uchar 是新类型:

typedef unsigned char Uchar;

但是函数指针完全不同。这里的新类型是 pFunc:

typedef int (*pFunc)(int);

我想不出任何其他的例子,但我遇到了一些非常令人困惑的用法。

那么是否有规则,或者人们只是应该从经验中知道这是如何完成的,因为他们以前见过这样做?

另外:typedef 的范围是什么?

最佳答案

基本上,typedef 与对象声明的语法完全相同,只是它以 typedef 为前缀。这样做会改变声明的含义,以便新标识符声明对象类型的别名,如果它是一个正常的声明,则该对象将拥有。

typedef 的范围与对象声明的范围完全相同,因此它可以是文件范围或 block 的本地,或(在 C++ 中)命名空间或类。

例如

声明一个int:

int a;

声明一个类型是 int 的别名:

typedef int a_type;

声明一个指向 char 的指针:

char *p;

声明 char * 的别名:

typedef char *pChar;

声明一个函数指针:

int (*pFn)(int);

为类型声明一个别名,该类型是“指向采用 int 并返回 int 的函数的指针”:

typedef int (*pFunc)(int);

关于c++ - 请解释 "typedef"的语法规则和范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2427739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com