본문 바로가기

c언어

C/C++와 Fortran을 조합한 프로그래밍 목차 공통사항 C 메인 프로그램에서 Fortran subroutine 사용하기 Fortran 프로그램에서 C언어 함수 사용하기 수치계산을 위한 프로그램을 짜다 보면, 포트란 함수를 C 혹은 C++ 에서 쓰거나, 그 반대의 경우가 생길 때가 있습니다. 특히 역사가 좀 오래된 모델을 가져다 쓸 때 그렇죠. C언어에서 함수를 특정한 포맷으로 써주면, 오브젝트 파일들을 링크함으로써, 언어의 장벽을 뛰어넘을 수 있습니다. 소스 코드로부터 프로그램을 만드는 과정에서 등장하는 오브젝트 파일의 개념이 낮설게 느껴지거나, 여러개의 소스 파일로부터 프로그램을 만드는 구체적인 과정이 궁금하신 분들은 다음 포스팅을 읽어보시길 권장합니다. C/C++ 코드가 프로그램이 되는 과정 여기서는 C언어 또는 C++로 작성된 소스 파일,.. 더보기
C언어 라이브러리 만들기 자주 쓰는 함수들을 라이브러리 형태로 만들어 두면, 프로그램을 짤 때 편리합니다. 오브젝트 파일로부터 라이브러리를 제작하고, 이를 헤더 파일과 함께 이용하는 방법을 알아볼텐데요. 만약 이러한 개념들이 낮설게 느껴지거나 C/C++ 프로그램을 빌드하는 과정을 더 자세히 알고 싶으시다면, 시작하기에 앞서서 다음 포스팅을 읽어보시면 큰 도움이 되리라 생각합니다. C/C++ 코드가 프로그램이 되는 과정 여기서는 C언어 또는 C++로 작성된 소스 파일, 헤더 파일의 개념과 이들을 빌드하여 하나의 프로그램을 만드는 과정에 대해 간략하게 짚어보겠습니다. 여러 개의 소스, 헤더 파일들로 이루어진 swstar.tistory.com 예를 들어서 함수 Function이 mylib.c 라는 소스코드에 정의되어 있고, 프로토타입.. 더보기
sudoku (스도쿠) 퍼즐 푸는 프로그램 (C언어) 아이패드 앱(의 부가기능) 중에 스도쿠(sudoku) 퍼즐이 있길래 좀 해보다가, 이걸 푸는 프로그램을 C언어로 작성하는 잉여짓을 하게 되었습니다. 기본원리는 그냥 게임의 룰을 반영하여, 모든 빈칸을 채울때까지 반복하는 것이므로 별도의 설명은 필요하지 않을듯 싶고, 다만 문제에 따라서, 숫자를 찍어야(?) 되는 상황이 있는 듯 해서 난수발생함수를 이용하여 이것을 구현하도록 하였습니다. 여기서 만든 건 알고리즘 최적화에 대한 문제가 있을텐데, 전 그런걸 걱정할 수준의 professional programmer가 아니라서 생략하고 순수 노가다를 택했습니다. 스도쿠 퍼즐 문제를 알려주기 위한 입력 파일은 9행 9열을 가진 텍스트 파일의 형태이며, 숫자를 채워 넣어야 하는 빈칸에는 0이 초기값으로 입력되어 있습.. 더보기
Command-line arguments (C/C++ 명령행 인자) C언어 또는 C++ 의 메인 (main)함수를 특별한 방법으로 정의해서, 프로그램을 실행시킬때 커맨드 라인에서 문자열들을 전달해줄 수 있습니다. 그러면 이들이 명령행 인자에 저장되어 프로그램 내에서 사용이 가능하게 되죠. 대표적으로 커맨드라인에 들어가는 인자의 갯수를 세는 정수형 변수와 인자들을 저장하는 문자열들이 있습니다. int main(int argc, char *argv[]) { // .... 프로그램 내용 } 이렇게 해서 컴파일 한 뒤에 실행시킬때, $./[실행파일 이름] [옵션1] [옵션2] ... 이렇게 옵션들을 지정해 주면, 그 갯수와 값들이 argc와 argv라는 변수들 안에 저장됩니다. argc = 옵션의 갯수에 1을 더한 값 (정수) argv[i] = i-번째 옵션의 값 (문자열) /.. 더보기