전체 글

전체 글

    전역변수 앞에서의 extern 과 static

    1) 전역변수 앞에서의 extern 변수 다른 c 혹은 c++ 파일과의 링킹을 할 때 종종 사용되곤 한다. // main.c #include extern void f(); extern int g_value; int main(void) { printf("%d\n", g_value); return 0; } 위는 main.c 이다. // sub.c #include int g_value; void f() { g_value = 1; } 위는 sub.c 이다. 이와 같이 main.c에서 extern int g_value; 와 같이 선언을 해주었는데 sub.c 에서 즉 외부변수를 가져와 사용하겠다는 것이다. 이때 main.c 에서 extern int g_value; 라고 하지 않고 그냥 int g_value; 라고 ..

    (Linux) vi 편집기

    오늘 문서 편집기에 대해 배우고 실습해보았는데 아무래도 나에게 익숙한 windows 와 같은 os는 마우스의 사용과 파일 탐색기의 사용이 가능하므로 키보드를 통한 명령어 사용이 너무나도 생소했다. 문서 편집기에는 vi 편집기와 nano 편집기가 있는데 아무래도 nano 편집기는 vi 편집기의 불편함을 최대한 보완하고자 만들었고 비교적 쉽기 때문에 vi 편집기에 대해서 정리해보려고 한다. vi 편집기에서는 세 가지 모드가 있다. command, edit, last line 모드이다. 일단 command 모드는 가장 기본적인 모드이다. command 모드에서 edit 모드로 전환이 가능하고 command 모드에서 lastline모드로 전환이 가능하다. 즉, edit 모드에서 lastline 모드로는 전환이 ..

    헤더가드의 필요성

    이전에 c언어를 처음 배울 때 컴파일과 링킹 과정에 대해서는 배운 적이 있었는데 그때는 Visual Studio가 아니라 dev c++ 를 사용했었기에 헤더가드에 대해서 잘 몰랐었다. Visual Studio 에서는 헤더파일을 생성하면 자동으로 이렇게 헤더가드를 붙여준다. #pragma once는 함수의 중복 사용을 막아준다. 아래의 상황을 예시로 들어보자. int something(int a, int b) { return a + b ; } 위의 코드 블럭을 working1.h 라고 하고 #include "working1.h" int imworking() { return something(5, 6) + something(3, 5) ; } 위의 코드 블럭을 working2.h 라고 할 때 만약 소스 파일이..

    파일 관련 명령어

    디렉토리와 관련된 명령어를 배운 후 오늘은 파일 관련 명령어를 배웠다. 파일과 관련된 기본적인 명령어로는 - touch : 내용이 아무것도 없는 빈 파일 생성 - rm : 파일 제거 명령어 - mv : 파일 이름 변경, 파일 이동 - cp : 파일 복사 - cat, head, tail, more : 파일 내용 확인 등이 있다. 다른 명령어는 디렉토리 명령어와 유사하거나 같아서 새롭지 않지만 cat, head, tail, more은 처음 알게 된 지식인데 - cat : 파일 내용 전부 확인 - head : 파일 내용을 시작부터 몇 줄만 확인, 기본적으로 10줄이고 옵션으로(head -3 이면 3줄까지만) 보고 싶은 라인 수 지정가능 - tail : head 와 반대로 끝에서 몇 줄만 확인하는 명령어로, 기..

    첫 발걸음

    #include using namespace std; int main() { cout