sizeof
#include <stdio.h>int main()
{
int i;
char j;
float k;
i = 123;
j = 'c';
k = 3.14;
printf("size of int is %lu\n",sizeof(int));
printf("size of short int is %lu\n",sizeof(short int));
printf("size of long int %lu\n",sizeof(long int));
printf("size of long long int is %lu\n",sizeof(long long int));
printf("size of i is %lu\n",sizeof i);
printf("size of char is %lu\n",sizeof(char));
printf("size of j is %lu\n",sizeof j);
printf("size of float %lu\n",sizeof(float));
printf("size of k is %lu\n",sizeof k);
printf("size of double is %lu\n",sizeof(double));
printf("size of long double is %lu\n",sizeof(long double));
printf("size of _Bool %lu\n",sizeof(_Bool));
printf("size of enum is %lu\n",sizeof(enum));
return 0;
}
输出:
error: type name requires a specifier or qualifier
printf("size of enum is %lu\n",sizeof(enum));
^
数据类型.c:28:2: error: expected '}'
}
^
数据类型.c:4:1: note: to match this '{'
{
^
3 errors generated.
#include <stdio.h>
int main()
{
int i;
char j;
float k;
enum hahaha{one, two, three}hahaha; // <------- 注意这里
i = 123;
j = 'c';
k = 3.14;
printf("size of int is %lu\n",sizeof(int));
printf("size of short int is %lu\n",sizeof(short int));
printf("size of long int %lu\n",sizeof(long int));
printf("size of long long int is %lu\n",sizeof(long long int));
printf("size of i is %lu\n",sizeof i);
printf("size of char is %lu\n",sizeof(char));
printf("size of j is %lu\n",sizeof j);
printf("size of float %lu\n",sizeof(float));
printf("size of k is %lu\n",sizeof k);
printf("size of double is %lu\n",sizeof(double));
printf("size of long double is %lu\n",sizeof(long double));
printf("size of _Bool %lu\n",sizeof(_Bool));
printf("size of enum is %lu\n",sizeof(hahaha)); // <------- 注意这里
return 0;
} 傻眼貓咪 发表于 2022-3-20 21:59
这是干嘛的
enum不是枚举类型吗
和_Bool,char不是一样的吗 Weabu 发表于 2022-3-20 22:01
这是干嘛的
enum不是枚举类型吗
和_Bool,char不是一样的吗
enum hahaha,
hahaha 才是枚举类型
enum 类似于 define 或 typedef 傻眼貓咪 发表于 2022-3-20 22:04
enum hahaha,
hahaha 才是枚举类型
枚举类型定义的作用是什么
不是可以直接定义枚举变量吗
那为什么不省去定义枚举类型直接定义枚举变量
Weabu 发表于 2022-3-20 22:12
枚举类型定义的作用是什么
不是可以直接定义枚举变量吗
那为什么不省去定义枚举类型直接定义枚举变量
其实枚举平常很少用到,我看了无数大佬的代码,几乎 1000 个代码里,可能只有一俩个代码有用到:
举例 A:#include <stdio.h>
#define one 1
#define two 2
#define three 3
#define four 4
#define five 5
int main() {
return 0;
}举例 B:#include <stdio.h>
enum number {one, two, three, four, five} number;
int main() {
return 0;
}
看出 A 和 B 的差别吗?基本用处就这样。(因为枚举只能是整型,所以好像没有什么用) 傻眼貓咪 发表于 2022-3-20 22:23
其实枚举平常很少用到,我看了无数大佬的代码,几乎 1000 个代码里,可能只有一俩个代码有用到:
举例 A ...
我知道用处,我就是想问问可以通过以下三种方式来定义枚举变量
1、先定义枚举类型,再定义枚举变量
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
enum DAY day;
2、定义枚举类型的同时定义枚举变量
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;
3、省略枚举名称,直接定义枚举变量
enum
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;
就是想问下前两种有啥用处,存在必有其道理吧,要不然只有第三种不就好了{:5_104:}
Weabu 发表于 2022-3-20 22:31
我知道用处,我就是想问问可以通过以下三种方式来定义枚举变量
1、先定义枚举类型,再定义枚举变量
第一种就如我刚才说的,hahaha 才是枚举类型,这里的 DAY 就好象 int、float、char 一样是类型,而 day 就好象 x, y, z, a, b, c 一样是变量
第二种就是第一种的省略版本
页:
[1]