본문 바로가기

IT/C|C++

[C] 외부 변수 참조, extern 이번 포스팅에서는 외부 파일에서 선언된 변수를 사용하는 extern에 대해서 알아보겠습니다. 1. extern main.c가 있고 test.h, test.c 파일이 있다고 가정해봅시다. 만약에 test.c에 있는 변수 int c라는 데이터를 main.c에서 가져다가 사용하고 싶습니다. 이럴때 사용하는 것이 extern입니다. 예제를 먼저 봅시다. 1. Makefile123456789101112131415161718192021222324252627 VPATH=./EXEC=mainOBJDIR=./ CC=gcc CFLAGS=-Wall -Wfatal-errors OBJ=test.o main.o OBJS = $(addprefix $(OBJDIR), $(OBJ))DEPS = $(wildcard ./*.h) Make.. 더보기
[C] 구조체, Structure 이번 포스팅에서는 구조체, Structure에 대해서 포스팅하겠습니다. 1. 구조체, Structure Type 구조체와, Structure Type이라는 단어를 보면, "구조"라는 단어가 눈에 들어옵니다. 쉽게 이야기해서 구조체는 구조화된 데이터의 집합입니다. 2. 왜 사용하는가? 우리가 만약 직교 좌표계를 표현하기 위해서 프로그래밍을 한다고 생각해봅시다. 일단 직교좌표계에서 점을 표현하기 위해서는 원소가 2개가 필요하고, 다음과 같이 표현할 수 있습니다. 이를 C언어에서 표현을 한다라고 하면 다음과 같이 표현할 수 있습니다. 1234567891011#include int main(void){ int x = 2; int y = 3; return 0;} 이게 직교 좌표계의 한점을 C언어에서 표현한 방법.. 더보기
[C] #ifndef을 이용한 header 중복 방지 이번 포스팅에서는 전처리문 #ifndef을 이용하여 header파일의 중복을 막는 방법을 포스팅하겠다. 먼저 #ifndef이 적용된 예제파일을 먼저 보겠다. _ #ifndef을 이용한 예제 1. coordinate.h1234567891011121314#ifndef COORDINATE#define COORDINATE #include struct coordinate{ int x; int y;}; void print_coordinate(struct coordinate *coord); #endif Colored by Color Scriptercs 2. coordinate.c1234567#include "coordinate.h" void print_coordinate(struct coordinate *coord).. 더보기
[C] 재귀 함수 Recursion function 최근 코딩면접을 준비하고 있는데, 어떤 인사 담당자님께서 재귀함수에 대해서는 알지만, 재귀함수을 계속 쓰게되면, 프로그램이 죽는데, 왜 죽고 이를 방지하기 위해 어떤 방법을 써야하는지에 대해서 모른다고 뽑고싶어도 사람을 뽑을 수 없다고, 한탄하시는 글을 읽고 찔려서 ㅎㅎ... 공부하게 되었습니다.피보나치 수열 피보나치 수열의 정의는 다음과 같습니다. 이를 프로그래밍에서 구현하게되면, 다음과 같은 재귀함수로 구현할 수가 있습니다. Fibonacci - Recursion12345678910111213141516171819#include int fibonacci_recursion(int n){ if(n 더보기
[MinGW/Eclipse c++] Compile Error 이번 포스팅에서는 MinGW/Eclipse C++ 개발환경에서 제일 처음으로 마주치는 당황스러운 에러에 대해서 포스팅하려고 한다. MinGW와 Eclipse C++의 설치를 마치게되면 제일 기본적으로 C++프로젝트를 생성하게 된다. 1. Make C++ Project 다음과 같이 프로젝트를 생성하고, 제일 기초적인 Hello World를 출력해보고자컴파일을 시도하게 되면, Binary not found라는 에러메세지를 접하게 된다.프로그래밍에서 제일 기초적인 코드인데도 실행이 안되서 엄청 당황스러웠던 기억이 있다.이는 다음과 같은 방법으로 해결한다. 2. Build Project 다음과 같이 Proejct -> Build Project를 클릭한다. 3. Compile 다음과 같이 잘 컴파일이 되었다. 이.. 더보기
[Eclipse C++]Install Eclipse c++/ Eclipse c++ 설치하기 MinGW를 사용하여 개발할 때,모든 컴파일 dependency를 하나하나 입력해주는 것은 너무나도 힘들기 때문에Eclipse c++을 사용하였다. 이번 포스팅에서는 MinGW환경에서 C++개발을 위한 Eclipse c++ 설치과정을 다뤄보도록 하겠다. 실은 순수 Eclipse에서 CDT를 설치하는 방법도 있지만, 개인적인 입장에서 Eclipse c++을 따로 사용하는게 더 편하게 느껴지기 때문에 Eclipse c++을 다운 받도록 하겠다. Eclipse사용을 위해서는 Java가 필요하므로 Java의 설치를 전제하고 이번 포스팅을 시작하겠다. 1. Eclipse C++ Download Download Link : www.eclipse.org/ : 해당 개발 환경에 맞춰서(32bit/64bit) Eclip.. 더보기
[MinGW]Install MinGW/ MinGW 설치하기 최근에 MSVS(Visual Studio) 개발환경을 피해서 개발해야하는 일이 있었다. 개발을 진행하면서 겪었던 문제상황들을 복기하기 위한 포스팅을 진행하고자 한다. 이번 포스팅에서는 GNU 소프트웨어 도구 모음을 윈도우 환경으로 포팅한 MinGW를 설치해보도록 하겠다. 1. MinGW Donwload MinGW를 다운로드한다. Download Link : www.mingw.org 2. Install MinGW : 체크박스를 모두 체크 한 후에, Installation -> Apply Changes를 클릭한 후, 설치가 완료되길 기다린다. 3. Check installation 이것으로 MinGW 설치를 포스팅을 마치겠다. 더보기
[Linux][Raspberry Pi 3][eclipse][C++] If can't not compile Thread code in eclipse // 리눅스 이클립스 환경에서Thread 코드가 컴파일 안될때, I use c++ eclipse in Raspberry pi 3when i try make some code about threadi can't compile that. it's doesn't work finally i find solution 1. Go to Project Properties -> C/C++ Build -> Settings -> Linker2. Add Libraries(-l), just typing "pthread"3. Click the OK button4. Compile again라즈베리파이에서 C++ 이클립스를 사용하고 있다.쓰레드를 쓸 일이 생겨서 사용하려고 하는데, 컴파일이 되지 않았다.여러가지 방법을 찾아봤지만, C11에서 사용할 수 있다는 thread.h파일은 안되는 것 같았.. 더보기