본문 바로가기

Programming14

[C] 소스 코드를 여러 파일로 나누기 (feat. 컴파일, 링킹) 소개 작성한 소스 코드의 양이 많아지면 이를 하나의 파일로 관리하기 보다 여러 파일로 나누어 관리하는 게 좋다. 여러 파일로 분리하면 코드의 구조를 보다 명확하게 파악할 수 있고, 코드 수정 및 유지 보수에 유리하기 때문이다. 또한, 이를 통해서 필요한 파일만 컴파일 함으로써 컴파일 시간을 줄일 수 있다. 이번 글에서는 C언어에서 소스코드를 여러 파일로 나누어 관리하는 방법을 살펴보려 한다. 아래의 코드 예시를 통해 소스 코드를 여러 파일로 나누는 방법을 살펴보려한다. main.c 파일을 만들고 아래와 같이 작성해보자. #include int add(int a, int b) { printf("add function\n"); return a + b; } int main() { int ret = add(1,.. 2023. 3. 12.
[C] 배열 포인터란? 배열 포인터란 배열 포인터는 배열을 가리키는 포인터입니다. 포인터는 변수의 주소를 저장하기 위한 변수형이며, 저장한 주소를 해석하는 방법을 의미합니다. 즉, int형 포인터는 int 형 주소를 저장하기 위한 변수형이고 저장한 주소를 int형으로 해석합니다. 이와 마찬가지로 배열 포인터는 배열의 주소를 저장하고 있고 저장한 주소를 배열로 해석합니다. 배열 포인터 선언 크기가 3인 int형 배열 x의 주소를 담는 포인터 변수 p는 아래와 같이 선언합니다. int x[3]; int(*p)[3] = &x; 조금 복잡해보이지만 배열 포인터를 선언하는 규칙은 다른 int, double 포인터와 동일합니다. 예를 들면, int, double의 포인터 변수는 다음과 같이 선언합니다. int n; int* p1 = &n.. 2023. 2. 26.
[C++] C++ 공부 시 참고 사이트 (isocpp, cppreference, ..) C++ 공부 시 참고할만한 사이트 정리 isocpp.org Standard C++ isocpp.org https://en.cppreference.com/w/ cppreference.com Null-terminated strings: byte − multibyte − wide en.cppreference.com https://www.youtube.com/@CppCon https://www.youtube.com/@CppCon www.youtube.com https://godbolt.org/ Compiler Explorer godbolt.org https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines C++ Core Guidelines isocpp.githu.. 2023. 2. 20.
[C] 윈도우에 gcc 컴파일러 설치하는 방법 gcc는 대표적인 오픈소스 C/C++ 컴파일러다. 윈도우에서 gcc 컴파일러를 설치하는 방법에 대해 정리하려 한다. 먼저 gcc를 설치하기 위해 아래의 링크로 이동한다. https://github.com/brechtsanders/winlibs_mingw/releases/ Releases · brechtsanders/winlibs_mingw winlibs standalone build of GCC compiler and MinGW-w64 - brechtsanders/winlibs_mingw github.com 제일 상단 게시글의 아래쪽에 있는 Assets를 누른다. 아래와 같은 Assets 목록 중에 x86_64가 들어가고 .zip로 끝나는 파일을 눌러서 다운로드 받는다. 다운로드 받은 파일은 압축을 풀고.. 2023. 2. 13.
[C++] STL vector 정리 및 사용법 1. vector란? 어떠한 자료형도 넣을 수 있는 동적 배열 vector에 저장된 요소는 연속된 메모리 공간에 위치 요소 수가 증가함에 따라 메모리를 자동으로 관리 어떤 요소에도 임의 접근이 가능 2. vector 헤더파일 및 네임스페이스 #include using namespace std; 3. vector 만들기 vector v; 빈 벡터를 생성 vector v(5); 크기가 5이고, 모든 요소가 기본값인 0으로 초기화된 벡터 생성 vector v(5, 10); 크기가 5이고, 모든 요소가 10으로 초기화된 벡터 생성 vector v2(v1); v1 vector와 동일한 크기 및 데이터를 갖는 vector v2 생성 예시) #include #include using namespace std; int.. 2022. 7. 14.
[C] 구조체 정리 1.구조체를 왜 사용할까? (사용자 지정 자료형) C언어에서 구조체가 왜 필요한 지 알기 위해서는 먼저 자료형이 무엇인지에 대해 알아볼 필요가 있습니다. 자료형은 일정 길이의 메모리에 저장된 정보를 해석하는 방법입니다. 메모리는 변수를 저장하기 위한 하드웨어이죠. 단순히 생각하면 메모리에는 숫자 밖에 들어있지 않지만 자료형에 따라 정수가 되기도 하고 실수가 되기도 하고 심지어는 문자가 되기도 합니다. 같은 숫자를 두고 해석하는 방법에 따라 문자가 되기도 하고 숫자가 되기도 합니다. 더도 덜도 아니고 그냥 그렇게 하기로 약속한 것입니다. 아스키 코드에서 숫자 65가 꼭 문자 'A'일 필요는 없으니까 말이죠. 자료형을 그릇에 비유하기도 합니다. 밥 그릇에 밥을 담고 국 그릇에는 국을 담는 것처럼 C언어에서는.. 2019. 2. 4.