일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Linux
- json
- Callback
- install
- package
- windows
- C
- 리뷰
- http
- Sync
- go언어
- API
- channel
- FOR
- write
- 책
- Python
- Golang
- window
- mutex
- c++
- range
- File
- go
- tcp
- Close
- GO 언어
- bitcoin
- JavaScript
- 영화
- Today
- Total
목록C언어 (4)
Code Habit
데이터가 저장된 메모리의 시작주소를 주소값이라 하고 이를 가리키는 것을 포인터라고 한다. int n = 1; int* pn = &n; 포인터는 아래 주소 연산자(&)와 참조 연산자(*)로 사용할 수 있다. 주소 연산자(&) : 변수의 이름 앞에 사용하여, 해당 변수의 주소값을 반환한다. 참조 연산자(*) : 포인터의 이름이나 주소 앞에 사용하여, 포인터가 가리키는 주소에 저장된 값을 반환한다. 문자열이나 배열에서 사용되는 변수명은 시작주소를 가리키는 포인터이다. char sz[100] = {"string"}; // sz는 문자열 "string"의 시작주소 int nArray[20]; // nArray는 배열의 시작주소 포인터 변수는 메모리에서 변수의 위치를 나타내는 주소를 다루는 변수이므로, 그 크기는 ..
지정한 레이블로 무조건 이동하는 명령어다. goto LABLE; printf("출력 x"); LABLE: printf("여기로 이동"); 보통 책에서 보면 goto문으로 코드를 작성하다 보면 스파게티 코드나 코드의 가독성이 떨어지는 경우가 발생할 수 있기에 사용을 지양하는 경우가 많은데, 실제 실무에서 어떻게 사용하느냐에 따라 코드를 간결하게 풀어 나갈 수도 있다 ! 예를들어 중복된 반복문을 빠져나가고 싶을 때는 goto문을 활용하여 코드를 간결하게 풀어나갈 수 있다. break는 하나의 루프만 빠져 나오므로 중복된 반복문 안에서는 자칫 프로그램을 복잡하게 만들 수 있다. 경험으로는 중복된 반복문 안에서 에러상황이나 예외상황 발생 시 goto문으로 해당 함수의 마지막으로 보내 할당된 리소스 등을 반환하고..
개발을 하다보면 서버 로그를 남기거나 디버깅을 기록할 때 파일을 활용할 수 있다. 다음 함수들로 파일을 사용할 수 있다. 파일 열기 - mode에 따라 스트림과 파일을 연결하고 파일 포인터를 반환한다. FILE* fopen( const char* filename, const char* mode ); 파일 쓰기 - 파일 포인터로 연결된 스트림에 string 문자열을 쓴다. int fputs( const char *string, FILE* stream ); 파일 닫기 - fopen으로 획득한 유효한 파일포인터를 stream에 넘겨 파일을 닫는다. 스트림에 남은 버퍼를 플래시 하는 역할도 한다. int fclose( FILE* stream ); 예제 ) FILE* pfile = NULL; file = fope..
파일 or 디렉토리(폴더)의 존재 유무, 파일의 권한 및 속성을 조사할 때 access 함수를 사용한다. 헤 더 함수 원형 int access( const char *path, int mode ); // path : 파일 or 폴더 경로 // mode : 검사 모드 // 반환 값 : 0 = 정상, -1 = 에러 모드 설명 0 존재 유무 2 쓰기 접근 허용 검사 4 읽기 접근 허용 검사 6 읽기 및 쓰기 접근 허용 검사 예 제 1 2 3 4 5 6 7 8 TCHAR szFilePath[MAX_PATH] = {0, }; _tcscpy( szFilePath, L"c:\\1.png" ); if( 0 == access( szFilePath, 0 ) ) { // 해당 파일 존재 } else { // 해당 파일 존재..