#include <stdio.h>
// 최대값 구하기
#define MAX(a,b) ( (a) > (b) ) ? (a):(b)
// 대문자로
#define UPCASE(c) (( (c)>='a' && (c)<='z') ? (c)-('a'-'A') : (c) )
// 소문자로
#define LOWCASE(c) (( (c)>='A' && (c)<='Z') ? (c)+('a'-'A') : (c) )
// 행 분리 시에는 '\' 사용
#define ASSERT(x) if (!(x) ) \
{ \
printf("assert failed. %s(%d) at %s %s(%s)\n", __FILE__, __LINE__, __DATE__, __TIME__, __TIMESTAMP__); \
}
// #은 "" 처럼 동작
#define DPRINT(expr) printf(#expr " = %g\n", expr )
// ##은 문자 붙이기
#define TPRINT(expr) printf("%d, %d\n", expr##1, expr##2)
void main()
{
printf("%d\n", MAX(5,3) );
printf("%g\n", MAX(5.4,3.2) );
printf("%c\n", UPCASE('a'));
printf("%c\n", LOWCASE('A'));
ASSERT(0);
double x = 3.4;
double y = 2.0;
DPRINT(x/y); // printf("x/y" " = %g\n", expr)
int a1 = 10, a2 = 20;
TPRINT(a);
}
'프로그램언어 > C/C++' 카테고리의 다른 글
컴파일 과정 & gcc 옵션 요약 (0) | 2012.03.24 |
---|---|
Pthread API Reference (1) | 2012.03.24 |
[AIX]dynamic library & static library (0) | 2012.03.24 |
POSIX 와 Thread-safety (0) | 2012.03.24 |
GCC 사용법 (0) | 2012.03.24 |