cuốn sách gpt4 ai đã làm

c - 如何从类型名中删除顶级指针?

In lại Tác giả: Vũ trụ không gian 更新时间:2023-11-04 01:55:51 27 4
mua khóa gpt4 Nike

例如,如果我有:

typedef int (*pFuncType)(int a, char b);

而且我想轻松地声明一个类型为“pFuncType”的指针的函数。像这样:

(*pFuncType) funcDeclr;

这可能吗?

câu trả lời hay nhất

Is this even possible?

这是不可能的。声明

typedef int * intptr;  

thể hiện intptr 是新类型。 intptr 类型的新变量可以定义为

intptr p; // Same as int * p;  

sử dụng intptr 无法声明类型为 int 的变量。做

(*inptr) i; 

Tương đương với

(*(int *)) i;

语法错误。
pFuncType Điều này cũng đúng.

另请注意,声明规则是声明说明符 必须位于声明符 Trước. * 出现在声明符中,因此它不能出现在任何声明说明符 之前。看grammar 1

tuyên ngôn
declaration-specifiers ;
declaration-specifiers init-declarator-list ;

declaration-specifiers
storage-class-specifier
type-specifier
type-qualifier
storage-class-specifier declaration-specifiers
type-specifier declaration-specifiers
type-qualifier declaration-specifiers

init-declarator-list
init-declarator
init-declarator-list , init-declarator

init-declarator
declarator
declarator = initializer

......
......

declarator
direct-declarator
pointer direct-declarator

direct-declarator
identifier
( declarator )
direct-declarator [ ]
direct-declarator [ constant-expression ]
direct-declarator ( )
direct-declarator ( parameter-type-list )
direct-declarator ( identifier-list )

con trỏ
*
* pointer
* type-qualifier-list
* type-qualifier-list pointer

1 语法可以在C11标准的§6.7和§6.7.6节下找到

关于c - 如何从类型名中删除顶级指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34413053/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress