목록C언어 (6)
Brise
-- 프로그래머의 편의를 위해 제공되는 매크로이다. 아무래도 디버깅 할 때에 매우 유용하게 사용할 수 있을 것 같다. 매크로 이름 리턴 값 설명 __FILE__ %s 이 매크로를 호출한 파일 이름을 출력한다. __LINE__ %d 이 매크로를 호출한 코드의 행 번호 위치를 출력한다. __DATE__ %s 현재 소스 코드의 컴파일 날짜를 나타내는 매크로 __TIME__ %s 현재 소스코드의 컴파일 시간을 나타내는 매크로[출처] C언어 제공 매크로|작성자 사기꾼 --
-- 보이드(void)변수형이 지정되지 않은 경우. 일반적으로 포인터 연산에 사용됨. void(1 워드) e.g.) void point; 정수형(signed)음의 정수, 0, 양의 정수를 표현할 수 있는 변수형 char (8 비트)short (16 비트)int (1 워드)long (32 비트)long long (64 비트) * int의 경우 16 또는 32비트이다. e.g.) char variable = 0; 양의 정수(unsigned)0과 양의 정수를 표현할 수 있는 변수형 unsigned char (8 비트)unsigned short (16 비트)unsigned int (1 워드)unsigned long (32 비트)unsigned long long (64 비트) * unsigned int의 경우 1..
-- -- 12345678910111213141516171819202122232425262728293031323334353637383940#include #define ARR_ROW 4#define ARR_COL 3void add_array(int row, int col, int Arr[][col]){ int i,j; for(i=0; i
#include void test1(void){ printf("TEST\n");}void test2(void){ printf("TEST2\n");}int main(void){ test1(); test2(); void (*test_pointer[2])(void); test_pointer[0] = test1; test_pointer[1] = test2; test_pointer[0](); test_pointer[1](); return 0;}
부동소수점 연산은 오버플로우 에러의 가능성이 낮다는 장점이 있다. 부동 소수점 변수의 정확도를 알기 위해서 간단한 테스트를 해보았다. 32비트의 float형 변수와64비트의 double형 변수의 정확도를 알아보기 위해서값을 입력한 뒤에 어느 숫자부터 부정확해지는지 알아보도록 하였다. 테스트 코드는 다음과 같다. #include int main (void) { float f = 1.123456789123456789; double d = 1.123456789123456789; printf("Original:\t1.123456789123456789\n"); printf("float:\t\t%2.20f\ndouble:\t\t%20.20f\n",f,d); return 0;} 위 파일을 실행시켜보았을 때에 다음과 ..
C언어에서 가장 이해하기 힘든 것이 바로 '포인터'이다. 포인터란 말 뜻대로 가리키는 것이다. 무엇을? 가리키냐 하면 바로 변수를 가리키는 것이다. '능엄경'이라는 책에 '견월망지' 라는 말이 있다. 바로 '달을 보기 위해서는 손가락 끝을 보지말고 손가락 끝이 가리키는 달을 보라' 라는 말이다. 이 말마따나 포인터란 당연히 손가락 끝을 가리키는 것이다. 포인터 주소의 크기는 프로세서가 사용하는 메모리 주소의 크기와 동일하다. 왜냐고?? 포인터는 '주소'를 가리키기 때문이다. 예를 들어 32비트 프로세서의 포인터는 32비트가 된다. 그런데 여기서 중요한점은 아무런 것도 해주지 않으면(void) 포인터가 가리키는 것이 '달'인지 '해'인지 모른다는 것이다. 때문에 '~~한 타입의 포인터' 이다. 라고 선언해..