Language/C,C++
C언어 try-catch 흉내내기
https://github.com/linuxias/linux-system-programming/blob/master/exception/try-catch.c #include #include #define TRY \do { \jmp_buf __buf; \switch (setjmp(__buf)) { \case 0: \{#define CATCH(e) \break; \} \case e: {#define FINALLY \break; \} \default: {#define ETRY \} \} \} while(0);#define THROW(e) longjmp(__buf, e) #define EXCEPTION_1 1#define EXCEPTION_2 2 int main(){TRY {printf("try\n");THROW..
[C언어] 실수형 MAX, MIN 값
정수형 변수의 최대, 최소 값은 limits.h에 선언되어 있다. 실수형 변수는 float.h에 선언되어 있다. FLT_MIN 1E-37DBL_MIN 1E-37LDBL_MIN 1E-37 FLT_MAX 1E+37DBL_MAX 1E+37LDBL_MAX 1E+37
[C] noreturn
C언어에서 여러분들이 만든 함수의 리턴 값이 없다는 것을 명시해 주고 싶습니다.void와는 다른 형태로 표준 라이브러리 중 abort()나 exit() 같은 함수들입니다.그때 사용하는 방법이 noreturn 입니다. noreturnA few standard library functions, such as abort and exit, cannot return. GCC knows this automatically. Some programs define their own functions that never return. You can declare them noreturn to tell the compiler this fact. For example, void fatal () __attribute__ ((n..
[C언어] Header File 한번만 포함하기.
C언어로 프로그래밍을 하다보면 하나의 헤더파일이 여러 곳에서 참조될 때가 있다.컴파일 시 해당 헤더파일이 여러번 중복되서 참조되는 상황을 막기 위해 #ifndef 와 #define이 사용된다. 예를 들어 test.h라는 헤더파일이 있다고 하자. 헤더파일의 가장 위에 #ifndef __TEST_H__#define __TEST_H__ // 내용 작성 #endif 위와 같이 작성하게 되면 __TEST_H__이 상수화 되어 헤더파일 참조 시 해당 파일 참조되었으므로 한번만 참조하게 된다.
[C언어] limits.h
프로그래머로써 프로젝트 진행시 코딩을 하다보면, 최소값이나, 최대값을 구하는 일은 다 반사다. 하지만, 어떠한 두 값을 비교할 때 가끔 문제와 마주치는 경우가 있다. 순차적으로 비교할 시 최초의 값을 비교할려는 변수의 값을 얼마로 초기화해야 할지 모를 때 이다. 이때 limits.h를 사용하면 굉장히 간편하게 해결할 수 있다. 자신이 선언한 자료형의 범위를 값으로 알려주므로, 굉장히 쉽게 초기값을 정할 수 있다. 만약 자신이 구하고 싶은게 최대값이다. 그래서 초기값을 0으로 했다면...?? 그런데 만약 최대값이 음수라고 해보자. 그렇다면 자신이 원하는 값이 아닌 초기값은 0 이 될 것이다. 자신이 어떠한 값을 초기값으로 놓아야 좋은가에 대한 문제를 쉽게 해결해 준다. limits.h 는 c언어의 표준 라..
텍스트 파일 한줄씩 입력받기.
#include #define N 100 //입력받을 데이터 크기 void main(){ FILE *pfile; char str[N]; fp = fopen("data.txt", "r"); // 파일 열기 while(!feof(pfile)) // 파일의 끝이 아니라면 { fgets(str, 80, pfile); // 최대 80칸짜리 한줄 읽기 puts(str); // 한줄 출력 } fclose(pfile); }