[PR]

型名から有符号型か無符号型かを判定する

戻る

 型名から有符号型か無符号型かを判定するマクロを作る。

	#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


Google
ご意見・ご感想をお聞かせ下さい。匿名で送信できます。

 * 返信が必要な場合には postmaster@katsura-kotonoha.sakura.ne.jp へ直接メールしてください。

水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp
『新妻LOVELY×CATION』を応援しています!