gpt4 book ai didi

c - 当 abcde 既是类型又是指针时,C 中的 sizeof(abcde)

转载 作者:行者123 更新时间:2023-11-30 21:17:21 27 4
gpt4 key购买 nike

首先让我承认,通过以不重叠的方式命名类型和变量来避免这种情况很容易。

尽管如此,我很好奇在以下情况下会发生什么:

typedef char jimmypage;

jimmypage *jimmypage;

sizeof(jimmypage) 是否等于 sizeof(char)sizeof(char *)

最佳答案

让我们make it work :

#include <stdio.h>

typedef char synonym;

int main(void) {

synonym *synonym;
printf("sizeof (synonym) = %ld\n", (long) sizeof (synonym));
return 0;
}

声明

synonym *synonym;

声明一个名为synonym的变量,其类型为指向周围 block 中声明的synonym类型(相当于char)的指针。此声明隐藏在周围 block 中声明的标识符synonym,其效果是从这一点开始到当前 block 的末尾,标识符synonym code> 将引用变量而不是类型;也就是说,在 block 的其余部分中,类型名称 synonym 不能再使用,因为 synonym 是一个变量。

补充说明:

该声明是合法的,因为该类型是在周围的 block 中声明的。尝试在与类型相同的级别声明变量

typedef char synonym;
synonym *synonym; // Syntax error: identifier redeclared

是一个语法错误,因为标识符synonym将被重新声明为不同的含义。

额外补充说明:

如果两个单词具有相同的含义,则它们是同义词。两个形式相同但含义不同的词是 homonyms .

关于c - 当 abcde 既是类型又是指针时,C 中的 sizeof(abcde),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43380999/

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