본문 바로가기

반응형

2024/12/15

(15)
[C] 10진수를 2진수로 출력하기 출처 - C 언어 무작정 따라하기 (길벗)​비트 연산자를 사용하여 이진수를 출력하는 방법이 일반적이나 위 책에서 특이한 방법으로 이진수를 출력하는 방법이 나와있어 정리해봄.​아래 정의된 구조체처럼 하면 1비트짜리 변수를 선언할 수 있다.​이를 union으로 하여 출력할 변수와 함께 그 변수의 비트만큼의 멤버변수를 가지는 구조체를 정의​값 입력을 union.변수에 하고 union.구조체의 멤버변수를 하나하나 읽어서 출력해준다.​단순히 이진수 출력이라면 비트 연산자를 사용하여 출력하는 방법이 훨씬 간단하겠지만 특정 비트를 조작해야되는 경우라면​아래의 경우가 더 나은 방법이 될 수도 있을것 같음.#include #include #include typedef union _byte{ unsigned char by..
[C] NULL과 널문자 NULL은 아스키코드에서 0을 의미(symbol은 NUL)하고 널문자는 '\0'이다.​문자열의 끝을 알리는건 널문자('\0')이지 NULL이 아니다.​NULL은 '\0'이 아니다.​하지만 NULL도 0이고 널문자('\n')도 0이다...​NULL을 10진수로 표현하면 0이고 널문자도 10진수로 표현하면 0이다.​그렇다면 NULL과 널문자의 차이점은...?​NULL은 상수 0을 define 해놓은 것으로 그대로 사용하면 int형 또는 void*형, 즉 4바이트의 자료형이 되지만​널문자는 char형, 즉 1바이트의 자료형이다. (맞나?)​그리고 이러한 차이 때문에 구분되어 사용되어 진다.​NULL은 주로 포인터 변수를 초기화 시킬 때... 널문자는 문자열의 끝을 알릴 때...​그래서 NULL과 널문자('\n..
[C] 메모리 공간의 할당과 초기화가 동시에 일어나는 상황 출처 - 열혈 C++ 프로그래밍​#include int SimpleFunc(int num);int main(){ int num = 10; // 여기 SimpleFunc(num); return 0;}int SimpleFunc(int num) // 여기{ return num; // 여기} 이렇게 3군데에서 메모리 공간이 할당되면서 동시에 초기화가 이루어진다. (C++에서 객체도 마찬가지)​main 함수에서 int num = 10; 이 부분이야 당연히 알거고...​int SimpleFunc(int num) 이 부분에서는 함수가 호출되고 매개변수로 선언된 변수들​메모리가 할당됨과 동시에 인자로 받아온 값으로 초기화가 된다.​​​문제는 SimpleFunc 함수 내부에 있는 return num; 이부분이다.​값을 ..
[C] scanf 함수 char형 하나의 문자 입력받을 시 발생하는 문제 아래와 같은 코드를 실행시켜 보면#include int main(void){ char str[30] = {0}; char ch = 0; scanf("%s", str); scanf("%c", &ch); printf("%s\n", str); printf("%c\n", ch); return 0;} 사용자가 "abc"를 입력했을 경우 "abc"를 str에 입력받고나서​ch에 입력받을 문자를 사용자가 입력 하기를 기다려야 되는데 그냥 넘어가 버린다.​이유는 사용자가 "abc"를 입력할 때 입력되는 문자열은 정확하게는 "abc(enter)"이다.​이 때문에 str에 "abc"가 입력이되고 입력버퍼에는 "(enter)"가 남아있게 된다. (엔터가...)​그래서 ch에 하나의 문자를 입력받을 차례에 이 "(enter)..
[C] C언어의 메모리 구조 (스택, 힙, 데이터, 코드 영역) 출처 - http://blog.naver.com/PostView.nhn?blogId=sealriel&logNo=10121467341​​​C 언어의 메모리 구조는 크게 스택 영역(Stack Area), 데이터 영역(Data Area), 코드 영역(Code Area), 힙 영역(Heap Area)있다.​​​스택 영역(Stack Area)스택 영역은 프로그램이 동작 시 지역변수, 매개변수, 표준버퍼, 시스템(OS) 임시데이터가 생성되고 사라지는 영역이다.​예를 들어 int, char, double, void, float 등 기본 자료형 과 if, for, while 등의제어문의 내부에서 선언된 변수는 제어문을 빠져나오면 수명이 다한다.​함수의 호출시 매개변수나, 함수의 내부에서 사용되는 지역변수도 마찬가지이다..
[C] A.txt 내용을 정렬하여 B.txt로 출력 #include #include #include int _tmain(int argc, LPTSTR argv[], LPTSTR *env){ system("sort B.txt"); return 0;}
[C] A.txt 내용을 정렬하여 콘솔에 출력 #include #include #include int _tmain(int argc, LPTSTR argv[], LPTSTR *env){ system("sort
[C] Thread 사용 예제 #include #include #include #include #include unsigned WINAPI ThreadProc(LPVOID lpParam); // Thread Func 함수 형식이 반드시 이와 같아야 함.int _tmain(int argc, LPTSTR argv[]){ _tsetlocale(LC_ALL, _T("Korean")); // 유니코드에서 한글 출력을 위한 코드 DWORD dwThreadID[3] = {0}; HANDLE hThread[3] = {0}; for(int i = 0; i

반응형