マクロ関数印刷ログ

1897 ワード

#defineマクロ関数
事前定義されたシンボルテーブル:
アイコン

意味
__FILE__
/home/david/hello.c
プリコンパイル中のソースファイル名
__LINE__
5
ファイルの現在の行番号
__FUNCTION__
main
現在の関数名
シーケンステーブル:
アイコン

意味
__DATE__
Mar 01 2016
ファイルのプリコンパイル日
__TIME__
23:04:12
ファイルのプリコンパイル時間
__stdC__
1
コンパイラがANSICに従う場合、値は1です.
#define INFO(format,...) printf("FILE: "__FILE__ ", LINE: %d: "format "", __LINK__, ##__VA_ARGS__)
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)
#if defined(_WIN16) || defined(__MSDOS__) || defined(_MSDOS)
// 16 bit systems use long int for 32 bit integer
typedef long int           int32;   // 32 bit signed integer
typedef unsigned long int  uint32;  // 32 bit unsigned integer
#else
// Most other systems use int for 32 bit integer
typedef int                int32;   // 32 bit signed integer
typedef unsigned int       uint32;  // 32 bit unsigned integer
#endif

// Define 64 bit signed and unsigned integers, if possible
#if (defined(__WINDOWS__) || defined(_WIN32)) && (defined(_MSC_VER) || defined(__INTEL_COMPILER))
// Microsoft and other compilers under Windows use __int64
typedef __int64            int64;   // 64 bit signed integer
typedef unsigned __int64   uint64;  // 64 bit unsigned integer
#define INT64_DEFINED               // Remember that int64 is defined
#elif defined(__unix__) && (defined(_M_IX86) || defined(_M_X64))
// Gnu and other compilers under Linux etc. use long long
typedef long long          int64;   // 64 bit signed integer
typedef unsigned long long uint64;  // 64 bit unsigned integer
#define INT64_DEFINED               // Remember that int64 is defined
#else
// 64 bit integers not defined
// You may include definitions for other platforms here
#endif