C(9)
-
[Simulink 개발] C언어로 작성된 코드를 Simulink에서 실행시키는 방법 (2)
Simulink에서 C 함수 실행시키는 법 (2) 1. 목적 이전 포스팅에서는 하나의 디렉토리에 있는 하나의 헤더파일과 하나의 소스파일을 시뮬링크에 넣어서 실행시켰다. 그런데, 프로젝트의 사이즈가 더 커지는 경우, 여러 폴더에 있는 파일들을 참조해서 이용하게 된다. 이러한 부분에 대한 정리를 위해 이 문서를 작성한다! 2. 테스트용 소스파일 작성 여러 함수를 여러 폴더에 나누어 작성하였다. 총 3개의 폴더에서 3개의 함수를 참조하여 최상위 디렉토리에서 복합적인 연산을 처리한 결과를 출력으로 내준다. 작성한 함수 add subtract multiply 작성된 함수를 참조하여 복합적인 연산을 처리하는 함수 complexCalc 위의 함수들은 아래의 디렉터리 구조에 맞게 위치한다. 각각의 파일들은 아래와 같이..
2020.08.19 -
[Simulink 개발] C언어로 작성된 코드를 Simulink에서 실행시키는 방법 (1)
Simulink에서 C 함수 실행시키는 법 (1) 1. 목적 C언어로 개발된 프로젝트를 simulink에서 실행시키려면 S-function을 만들어야 된다고 하는데 그냥 C를 쓸 수 있는 방법은 없을까 찾아보다가 예제파일을 발견했다. slexCCallerExample % 시뮬링크에서 C 함수를 C Caller 함수로 불러와 이용하는 예제 파일 예제 파일을 읽어보고 내가 원하는 함수를 이용하는 방법을 테스트하면서, 설정해야하는 조건들이 여기저기에 있어서 정리를 하려고 이 문서를 작성한다! 2. 테스트용 소스파일 작성 두 입력을 받아서 간단하게 더해주는 함수를 작성했다. 소스파일 // Test.c #include "Test.h" double add(double u1, double u2) // 두 입력을 받아..
2020.08.19 -
[C언어 스터디 - 14] 구조체를 입력으로 이용하는 함수 (function using struct as input)
C언어 함수 정리 참고 문헌 (Ch 65) : https://dojang.io/mod/page/view.php?id=570 함수에서 구조체 매개변수 사용하기 구조체 매개변수 사용하기 함수에서 구조체를 매개변수로 사용하기 위해서는 struct 키워드와 구조체 이름으로 매개변수를 지정한다. 반환값자료형 함수이름(struct 구조체이름 매개변수) { } 예시 #include #include // strcpy 함수가 선언된 헤더 파일 struct Person { char name[20]; int age; char address[100]; }; void printPerson(struct Person p) // 반환값 없음, 구조체 매개변수 한 개 지정 { // 구조체 매개변수 멤버의 값 출력 printf("이름:..
2020.07.04 -
[C언어 스터디 - 13] 배열을 입력으로 이용하는 함수 (function using array as input)
C언어 함수 정리 참고 문헌 (Ch 64): https://dojang.io/mod/page/view.php?id=562 배열 매개변수 사용하기 함수의 입력(매개변수)으로 배열을 사용하기 위해서는 입력(매개변수) 이름 뒤에 []를 붙이거나 매개변수를 포인터로 지정해주면 된다. 반환값자료형 함수이름(자료형 매개변수[]) { } 반환값자료형 함수이름(자료형 *매개변수) { } 예시 #include void printArray(int arr[], int count) // 배열의 포인터와 요소의 개수를 받음 { for (int i = 0; i < count; i++) { printf("%d ", arr[i]); } printf("\n"); } int main() { int numArr[10] = { 1, 2, ..
2020.07.03 -
[C언어 스터디 - 08] 열거형 (enum)]
열거형 사용하기 참고 문헌 (Ch 57): https://dojang.io/mod/page/view.php?id=480 열거형 정의하기 열거형을 사용하면 상수를 좀 더 편하게 정의 가능! enum 을 이용하여 정의 enum 열거형이름 { 값1 = 초깃값, 값2, 값3 }; 열거형 변수의 선언: enum (열거형 이름) (변수 이름); 예시 (요일) #include enum DayOfWeek { // 열거형 정의 Sunday = 0, // 초깃값 할당 Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }; int main() { enum DayOfWeek week; // 열거형 변수 선언 week = Tuesday; // 열거형 값 할당 printf("%d\..
2020.06.28 -
[C언어 스터디 - 06] 구조체 멤버값 설정 (memset)
구조체와 메모리 활용하기 참고 문헌 (Ch 52): https://dojang.io/mod/page/view.php?id=438 구조체와 메모리를 간단하게 0으로 설정하기 구조체 변수나 메모리의 내용을 한꺼번에 값을 설정하려면 memset 함수를 사용 memset(구조체 포인터, 설정할 값, sizeof(struct 구조체이름)) 예시 - 구조체 변수를 이용 #include #include // memset 함수가 선언된 헤더 파일 struct Point2D { int x; int y; }; int main() { struct Point2D p1; memset(&p1, 0, sizeof(struct Point2D)); // p1을 구조체 크기만큼 0으로 설정 printf("%d %d\n", p1.x, p..
2020.06.26