型名から有符号型か無符号型かを判定するマクロを作る。 #define is_signed(type) ( ((type)-1) < 0 ) #define is_unsigned(type) ( 0 < ((type)-1) ) is_signed マクロの動作を確認する#define is_signed(type) (((type)-1)<0) #define print_type(type) printf( "%16s: %s\n", #type, (is_signed(type) ? "signed" : "unsigned") ) //********************************************************* // is_signed マクロの使用例 //********************************************************* int main( void ) { print_type(char); print_type(unsigned char); print_type(short); print_type(unsigned short); print_type(int); print_type(unsigned int); print_type(long); print_type(unsigned long); print_type(float); print_type(double); // print_type(void); // コンパイルできません // print_type(bool); // コンパイルできません print_type(clock_t); print_type(ptrdiff_t); print_type(sig_atomic_t); print_type(size_t); print_type(time_t); print_type(wchar_t); print_type(wctrans_t); print_type(wctype_t); print_type(wint_t); return 0; }//main 実行結果char: signed unsigned char: unsigned short: signed unsigned short: unsigned int: signed unsigned int: unsigned long: signed unsigned long: unsigned float: signed double: signed clock_t: signed ptrdiff_t: signed sig_atomic_t: signed size_t: unsigned time_t: signed wchar_t: unsigned wctrans_t: unsigned wctype_t: unsigned wint_t: unsigned |
|
水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp
同人ダウンロード販売|DL.Getchu.com