在C语言中,是否存在可以存储按位运算结果的变量类型?

在C语言中,是否存在可以存储按位运算结果的变量类型?,c,bit-manipulation,stat,C,Bit Manipulation,Stat,我只是想知道是否有一种变量类型可以用来存储按位运算的结果。以下是我的一段经历: struct stat fileinfo; if((fileinfo.st_mode & S_IFMT) == S_IFREG){ return FTYPE_REG; } else if((fileinfo.st_mode & S_IFMT) == S_ISDIR){ return FTYPE_DIR} 在代码的其余部分,fileinfo.st_mode&S_IFMT,重复了很多次,因此理想情况下

我只是想知道是否有一种变量类型可以用来存储按位运算的结果。以下是我的一段经历:

struct stat fileinfo;

if((fileinfo.st_mode & S_IFMT) == S_IFREG){ return FTYPE_REG; }
else if((fileinfo.st_mode & S_IFMT) == S_ISDIR){ return FTYPE_DIR}
在代码的其余部分,
fileinfo.st_mode&S_IFMT
,重复了很多次,因此理想情况下我希望将其存储在变量中,但我不太确定它将是什么类型


是否可以将其存储为变量?如果可以,是什么类型?

当然可以。类型应与
S\u IFMT
fileinfo.st\u模式
相同。

当然可以。类型应与
S\u IFMT
fileinfo.st\u模式
相同。

您可以包括
sys/types.h
,然后使用:

mode_t my_mode = fileinfo.st_mode & S_IFMT;

如“
模式应为整数类型。”

您可以包括
sys/types.h
,然后使用:

mode_t my_mode = fileinfo.st_mode & S_IFMT;

如“
模式\u t
应为整数类型。”

按位运算的结果类型与任何常用算术运算的结果类型相同。不要担心存储它。现代编译器将为您缓存它。请参阅:
mode\t st\u mode
No。没有名为
stat
的类型(除非您自己定义)。有一种类型名为
struct stat
,但它是一种结构类型。您也可以使用
s_ISDIR(fileinfo.st_mode)
,它更简洁一些。按位运算的结果类型与任何常用算术运算的结果类型相同。不要担心存储它。现代编译器将为您缓存它。请参阅:
mode\t st\u mode
No。没有名为
stat
的类型(除非您自己定义)。有一种类型名为
struct stat
,但它是一种结构类型。您也可以使用
s_ISDIR(fileinfo.st_mode)
,它更简洁一些。