반응형

2024/12 157

[C] 프로그래밍 방법의 3가지

출처 - 한눈에 보이는 C프로그래밍(무작정 따라하기)​순차적 프로그래밍​컴퓨터가 처리해야 할 순서에 따라 기술하는 방식.​한 번에 하나의 작업만을 할 수밖에 없다는 단점이 있지만 프로그래밍의 구조가 간단하고 작성하기도 쉽기 때문에​지금도 종종 사용되고 있다.​​​구조적 프로그래밍​기본적인 개념은 중복되어 사용할 수 있는 기능을 하나로 묶는다는 것이다.​다시 말해, 서로 다른 프로그램이라고 할지라도 같은 기능을 사용해야 할 경우라면 굳이 프로그램마다 이 기능을 위해​똑같은 소스 코드를 생성할 필요 없이, 공통 부분의 소스코드를 만들어 놓고 필요한 프로그램에서 이 코드를 사용하면 된다는 것​이렇게 공통적으로 사용할 수 있는 기능을 묶어놓은 것을 모듈 이라고 한다. C언어에서는 함수라고 부른다.​비슷한 기능을..

C/Study 16:00:29

[C] 컴파일러와 인터프리터의 차이점

출처 - 한눈에 보이는 C프로그래밍(무작정 따라하기)​인터프리터(Interpreter)도 컴파일러와 비슷한 역할을 한다.​텍스트로 되어 있는 소스 파일을 CPU가 이해할 수 있는 이진 코드로 변환해준다.​그러나 컴파일러가 소스 파일을 번역하여 이진 파일인 오브젝트 파일을 생성하는 것이 비해, 인터프리터는 소스 파일을 한 줄씩 읽어서​이진 코드로 바꾸어 CPU가 바로 실행할 수 있도록 해준다.​이런 특징은 간단한 프로그램의 경우에는 소스 파일을 실행하는 데 컴파일과 링크 등의 과정이 필요없으므로 편리할 수는 있지만,​실행 파일이 생성되지 않으므로 소스 파일을 실행하기 위해서는 항상 인터프리터가 필요하다.​또한, 소스 파일의 첫 번째 줄부터 한줄씩 실행되므로 프로그램의 실행 속도가 컴파일러에 의해 생성된 실..

C/Study 15:54:35

컴파일과 빌드의 차이점

출처 - 한눈에 보이는 C프로그래밍(무작정 따라하기)​컴파일(Compile)이란, 텍스트 형태로 되어 있는 소스 파일을 기계어 파일(바이너리 파일, 이진 파일)로 만드는 과정을 의미한다.​단순히 텍스트 파일로 되어 있는 것을 해당 프로그래밍 언어의 문법에 맞는지 검사하여 특별한 오류가 없다면 기계어 파일로 변경해 준다.​그러나 컴파일 된 파일은 실행 파일이 아니다. 다시 말하면 우리가 윈도우 환경에서 실행할 수 있는 .exe 파일의 형태가 아니라는 의미다.​비주얼 C++에서는 .c로 되어 있는 소스 코드를 컴파일하면 .obj 파일로 변환한다. 마찬가지로 리눅스나 유닉스에서도 .c로 되어 있는​소스 코드를 컴파일하면 .o 파일로 변환한다. 이와 같은 obj 파일이나 .o 파일을 일반적으로 오브젝트(Obje..

C/Study 15:48:54

[C] 오류와 경고의 차이점

출처 - 한눈에 보이는 C프로그래밍(무작정 따라하기)​오류(Error)는 단 하나라도 발생하면, 해당 소스 파일이 컴파일되지 않습니다.​결국 오류를 모두 수정하지 않고서는 컴파일을 완료할 수 없다는 의미가 된다.​​​경고(Warning)는 프로그래머에게 나중에 문제가 발생할지도 모른다는 것을 알려주는 것으로, 컴파일 과정과 실행 파일 생성 과정에는​별 영향을 미치지 않고 무사히 진행된다.​흔히 1~2년 정도 경력을 가진 프로그래머들은 이러한 경고 메시지를 무시하는 경향이 있는데,​이것은 결코 좋은 프로그래밍 습관이 아니다.​오류가 됐던, 경고가 됐던 메시지로 출력된 내용을 보고 오류나 경고가 나타나지 않도록​소스 코드를 올바르게 수정하는 습관을 가져야 한다.​나중에는 무시했던 경고들이 쌓이고 쌓여서 치명..

C/Study 15:45:59

Microsoft Windows에서의 system32폴더와 syswow64폴더

64비트 윈도우즈에서 GetSystemDirectory 함수를 호출하면 어떤 결과가 나올까.​만약 32비트 프로세스에서 실행을 한다면 c:\windows\system32 가 나오게 된다.그리고, 64비트 프로세스에서도 마찬가지로 c:\windows\system32 가 나오게 된다.​하지만 이건 같은것이 아니다.32비트 프로세스에서 c:\windows\system32 폴더에 뭔가를 쓰게 되면 실질적으로는 c:\windows\syswow64 폴더에 써지게 된다. 즉, 내부적으로 저렇게 리다이렉트가 되는 것이다.​경로를 코드상에 c:\windows\system32 로 하드코딩한 경우도 있을 것이고 GetSystemDirectory 같은 함수로 구했을 수도 있을 것이다.두 경우 다 보이기에는 c:\windows..

개발 15:36:42

코딩 습관

1. 함수(매서드) 내에서 return문을 여러 번 쓰는 것보다 가능하면 변수를 사용해서 리턴값을 저장했다가 마지막에 한 번만 사용하는 것이 좋다.int max(int a, int b){ int result = 0; if(a > b) { result = a; } else { result = b; } return result;} ​​2. 객체지향 코드를 작성할 시 인스턴스 변수를 사용하지 않는 함수(메서드)가 있을 경우 static을 붙이는 것을 고려한다.static을 안 붙인 메서드(인스턴스 메서드)는 실행 시 호출되어야 할 메서드를 찾는 과정이 추가적으로 필요하기 때문에 시간이 더 걸린다.​​​3. 하나의 함수는 특수한 경우가 아니면 하나의 기능만 하도록 한다.​​​4. 주석은 필수다.​​​5. 단..

개발 15:32:03

함수 주석 양식

/********************************************************************************* 간단한 설명 :* 매개변수로 넘겨준 사이즈만큼의 별로 된 나비 넥타이 모양을 그려줌* 파라미터 :* int size - 그려줄 나비 넥타이의 크기, 3이상의 홀수* 리턴 값(int) :* 0 - 정상 종료* 추가 설명 :* 함수 구현 제한 조건 - 두개의 반복문과 하나의 조건문* 사용 예 :* Drow_NAVI(7);* 만든 사람 :* Moong* 만든 날짜 :* 2023년 01월 26일 15시 50분* 최종 수정한 사람 :* Moong* 최종 수정 날짜 :* 2023년 01월 26일 15시 50분* 참고 :* 서적 또는 블로그 주소 등등***********..

개발 15:20:13

C++ 창시자의 조언

인터넷에 떠돌아다니는 글을 가져온건데 실제 비야네 스트롭스트룹(Bjarne Stroustrup)이 쓴 글인지는 모르겠음.​​​C++ 창시자의 조언 11. 프로그래밍이란 어떤 문제에 대한 해결책 안에 여러분의 아이디어를 구체적으로 표현한 문장을 써 넣는 것이다. 프로그램의 구조는 이런 아이디어를 최대한 직접적으로 드러내도록 하자.a. 별도의 아이디어로 생각되는 '것'은 클래스로 만든다.b. 별도의 개체(entity)로 생각되는 '것'은 클래스의 객체로 만든다.c. 공통의 인터페이스를 가지면, 이 인터페이스는 추상 클래스로 만든다.d. 두 클래스의 구현 코드가 주요 부분에서 똑같으면, 공통된 부분을 뽑아 기본 클래스로 만든다.e. 객체의 컨테이너가 될 클래스는 템플릿으로 만든다.f. 컨테이너에 대한 알고리즘..

개발 15:07:36

질문하는 법

서론​누구나 프로그래밍을 하다보면, 모르거나 막히는 부분이 생깁니다.문제를 어떻게 해결 할 것인가는 수많은 방법이 존재하겠지만, 그 방법조차 모를경우 우리는 타인에게 도움을 요청합니다.다행히도 프로그래머에게 허용된 몇 안되는 커뮤니티가 아직 존재하기에 우리는 익명의 누군가에게 도움을 요청하고 그 해답을 얻을 수 있는 기회를 얻게 된겁니다.​다만, 질문의 방법을 몰라 제대로 된 답변을 얻지 못하거나 무시당하는 경우가 비일비재 하여 몇가지 적어볼까 합니다.다음 항목들을 가능한 지켜준다면 누군가의 마음을 움직여 좋은 답을 얻을 수 있지 않을까요?(본문에 사용된 예시는 게임코디 연구소 질답란에서 발췌, 가공했습니다)​​​명심할 것- 질문하는 상대는 선배입니다.가끔, 반말이나 통신체등으로 질문하는걸 보는 경우가 ..

개발 14:58:25
반응형