분류 전체보기
do { ... } while(0) 을 사용하는 이유
do { ... } while(0) 을 사용하는 이유
2016.12.21do { ... } while(0) 을 사용하는 이유원문 : https://kernelnewbies.org/FAQ/DoWhile0리눅스 커널 등의 소스 코드를 보게 되면, "do { ... } while(0)"과 같은 것을 많이 씁니다. 당연히 중괄호 안의 내용이 한 번만 실행되고 끝나는 프로그램인데, 왜 이렇게 만들었을까요?다음과 같은 이유가 있습니다. ▶ Miller : 빈 구문(empty statement)는 컴파일러가 경고를 냅니다. ▶ Miller : 지역 변수를 선언할 수 있는 구역을 만들어줍니다. ▶ Collins : 조건문을 포함한 코드에서 복잡한 형태의 매크로를 사용할 수 있도록 해줍니다.#define FOO(x) \ printf("arg is %s\n", x); \ do_somethin..
[C 언어 기초] 3. C 언어의 미래
[C 언어 기초] 3. C 언어의 미래
2016.12.21C 언어의 미래1980년대 초에 C 언어는 이미 Unix를 사용하는 컴퓨터 세계에서 지배적인 언어가 되었습니다. 그때부터 개인용 컴퓨터와 메인프레임으로 서서히 퍼져 나가기 시작했습니다. 많은 소프트웨어 개발 회사가 C 언어를 사용해서 워드 프로세서, 스프레드시트, 컴파일러, 그 밖의 소프트웨어 제품들을 개발하고 있었으며, 이는 C 언어를 사용하면 간결하고 효율적인 프로그램을 만들 수 있다는 것을 뜻합니다. 더 중요한 것은, C로 만든 프로그램은 수정하기가 쉬울 뿐만 아니라 새로운 모델의 컴퓨터에 적용하기도 쉽습니다.소프트웨어 회사와 C 언어의 고수들에게 좋은 언어라면 다른 사용자들에게 역시 좋을 것입니다. 점점 더 많은 컴퓨터 사용자들이 C의 장점을 활용하기 위해 C 언어로 전환하였습니다. 그렇다고 해서..
[C Project] 카카오톡 광고 제거 프로그램 제작
[C Project] 카카오톡 광고 제거 프로그램 제작
2016.12.20[WinAPI] 카카오톡 광고 제거 프로그램 제작WinAPI를 이용해서 카카오톡의 광고를 제거(숨김)하는 프로그램입니다.카카오톡 광고 제거 프로그램 개발기 카카오톡의 PC 버전은 상당히 편리합니다만, 하단의 광고가 거슬릴 수 있습니다 회사의 수익모델(광고)을 건드리지 않고, 외부 어플리케이션을 제어하는 방법이 궁금한 사람들에게 도움이 되고자 개발 과정을 공개합니다.카카오톡의 광고를 없애는 방법1. 외부에서 제어를 해서, 광고를 제거 혹은 숨깁니다. 2. 설치된 어플리케이션의 리소스를 해킹해서 광고를 완전 제거해버립니다.두 번째 방법의 경우, 카카오톡 프로그램 무단 변경으로 연락이 올 수 있기에 첫 번째 방법을 택했습니다.카카오톡 클래스의 구조 카카오톡의 클래스 구조는 위와 같습니다. 카카오톡의 지식 윈도..
[C 언어 기초] 2. C 언어가 인기 있는 이유
[C 언어 기초] 2. C 언어가 인기 있는 이유
2016.12.20C 언어가 인기 있는 이유C 언어는 현재 가장 중요하고 인기 있는 프로그래밍 언어 중 하나가 되었습니다. 많은 C 사용자들이 C++ 언어로 넘어가기도 했지만, C는 그 자체로도 중요하며, C++ 언어를 배우는 발판이 됩니다. 다음은 C 언어의 장점 중 몇 가지를 나열해 봤습니다. 1. 제어구조가 강력합니다. 2. 실행 속도가 빠릅니다. 3. 코드가 간결합니다. 4. 이식성이 좋습니다.설계상의 특징C 언어는 하향식 설계와 구조화 프로그래밍, 모듈화 설계를 쉽게 적용할 수 있는 환경을 제공함으로써 신뢰할 수 있고 이해하기 쉬운 프로그램을 만들 수 있습니다. 효율성C 언어는 컴퓨터를 효율적으로 사용할 수 있도록 설계된 프로그래밍 언어입니다. 그래서 C로 만든 프로그램 역시 작고 실행 속도 또한 빠릅니다. C를..
[C 언어 기초] 1. C 언어의 역사
[C 언어 기초] 1. C 언어의 역사
2016.12.19C 언어의 역사C언어는 취미로 프로그래밍하는 사람과 직업으로 하는 사람 모두에게 인기 있는 강력한 프로그래밍 언어입니다. 1972년 Thompson의 B 언어를 기반으로 Unix 운영체제를 위해서 만들어진 C언어는 거의 30년이 넘게 지난 지금까지도 많은 사람에게 사랑받고 있는 언어 중 하나입니다. 객체지향이 일반화되고 C++, JAVA, Python과 같은 C와 비교해 더 편한 언어들이 나왔음에도 불구하고, 상업적으로 또는 학습용으로 자리를 지키고 있습니다. C언어가 인기를 끌게 되자, 산업현장에서는 쉽게 응용을 할 수 있도록 표준화가 필요해졌고, 그리하여서 1983년 ANSI(American National Standards Institute)에서 C에 대한 표준을 정의하게 됩니다. 이후 C를 위한 ..
[C 언어 기초] 이 강좌의 접근 방법과 목표
[C 언어 기초] 이 강좌의 접근 방법과 목표
2016.12.18이 강좌의 접근 방법과 목표이 강좌의 목표는 혼자서도 C 언어를 공부할 수 있도록 친절하고 유용한 자습서를 제공하는 것입니다.이 목표를 달성하기 위해 다음과 같은 전략들을 수용했습니다.1. 프로그래밍의 개념을 C 언어와 함께 천천히 설명합니다. 2. 간단하고 많은 예제를 통해서 이해를 돕습니다. 3. 텍스트만 가지고 이해하기 어려운 개념은 그림을 이용해서 좀 더 명확하게 전달합니다.이 강좌가 설명하는 각 주제에 대해서 능동적인 태도를 보여야지만 최대의 효과를 낼 수 있습니다.단순히 예제를 눈으로 읽는 것에 그치지 말고, 시스템에서 직접 타이핑하고 실행해보세요.C는 이식성이 있는 언어지만, 독자의 시스템에서 강좌의 내용과 다르게 작동하는 부분이 있을 수도 있습니다. 그럴 때는 프로그램 일부를 수정하면서 어..