2016-11-19 35 views
0

我只是想知道是否有一個變量類型,我可以用它來存儲一個按位操作的結果。這裏是什麼,我有一個片段:在C中,是否有一個可以存儲按位運算結果的變量類型?

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,重複了很多在我的代碼休息,所以最好我想將它存儲在一個變量,但我也不太清楚是什麼鍵入它會。

是否有可能將此變量存儲爲變量,如果有,是什麼類型?

+3

按位操作的結果類型與任何常用的算術操作相同。 –

+2

不要擔心存儲它。現代編譯器會爲你緩存它。 – PSkocik

+0

查看http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_stat.h.html:'mode_t st_mode' –

回答

2

當然可以。該類型應與S_IFMTfileinfo.st_mode相同。

2

可以包括sys/types.h然後用:

mode_t my_mode = fileinfo.st_mode & S_IFMT; 

正如spec指出, 「mode_t應爲整數類型。」

相關問題