在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)
,它更简洁一些。