cheoly's language study blog

C언어 구조체란?

프로그래밍/C언어
반응형
SMALL

이번 포스팅에서는 C언어의 구조체에 대해 자세히 알아보려고 해요. 구조체는 여러 자료형을 하나로 묶어 사용할 수 있는 강력한 도구인데요, 이를 통해 데이터의 관리와 조작이 훨씬 수월해진답니다. 그럼 하나씩 살펴볼까요?

C언어 구조체란?
구조체는 여러 개의 서로 다른 자료형을 하나의 단위로 묶어서 사용할 수 있도록 정의한 사용자 정의 자료형이에요. 예를 들어, 학생의 정보를 저장할 때 이름, 나이, 성별, 학번 등을 각각의 변수로 저장하는 대신, 구조체를 사용하면 이 모든 정보를 하나의 구조체로 묶을 수 있어요.

구조체의 정의 및 사용법
구조체를 정의할 때는 struct 키워드를 사용해요. 다음은 구조체를 정의하는 기본적인 방법이에요:

c
struct Student

이렇게 정의한 후, 구조체 변수를 인자로 넘겨주면 해당 학생의 정보를 출력할 수 있어요.

구조체 포인터
구조체 포인터를 사용하면 메모리 효율성을 높일 수 있어요. 구조체의 주소를 저장하고, 이를 통해 구조체의 멤버에 접근할 수 있답니다. 예를 들어:

c
struct Student *ptr = &student1;
printf("Name: %s\n", ptr->name);

위와 같이 -> 연산자를 사용하면 포인터를 통해 구조체의 멤버에 접근할 수 있어요.

구조체의 장점과 단점
구조체의 가장 큰 장점은 관련된 데이터를 하나의 단위로 묶어 관리할 수 있다는 점이에요. 이를 통해 코드의 가독성이 높아지고, 데이터 관리가 용이해져요. 하지만 단점으로는 구조체의 크기가 커질 수 있고, 복사할 때 성능 저하가 발생할 수 있다는 점이 있어요.

마무리 및 추가 자료
C언어의 구조체는 데이터 관리를 효율적으로 할 수 있는 강력한 도구예요. 다양한 자료형을 묶어 사용할 수 있어 프로그래밍의 유연성을 높여준답니다. 더 많은 예제와 자료는 아래 링크에서 확인해보세요!

 

https://blog.naver.com/highkrs/220184227321

 

[C언어 강의29] 구조체 사용법 (struct)

안녕하세요. 모프 입니다.   오늘은 C언어의 구조체에 대하여 설명해보도록 하겠습니다.  ...

blog.naver.com

https://studyc.tistory.com/23

 

초보자를 위한 기초 C 언어 강좌 #19 : 구조체

본 강좌는 아래 동영상 강좌와 같이 진행됩니다. 되도록이면 동영상과 같이 보시는 것을 추천합니다. 유튜브 채널 가기 강좌 19편 동영상 보기 이번시간에는 여러 자료형을 묶어 하나로 사용할

studyc.tistory.com

https://coding-factory.tistory.com/639

 

[C언어/C++] 구조체 사용법 & 예제 총정리

구조체란? 구조체란 하나 이상의 변수를 묶어 그룹화하는 사용자 정의 자료형입니다. 사용자가 C언어의 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 타입이며 기본 타입만으로는 나

coding-factory.tistory.com

 

반응형
LIST

랩뷰(labview) 시리얼 통신

프로그래밍/LABVIEW
반응형
SMALL

pc와 장비간 통신이 이루어질 때, 가장 흔하고 오래된 통신 방식인 시리얼통신을 랩뷰에서 구현해보고자 한다.

가장 먼저 ni max에서 필요한 드라이버가 설치되어져 있는지 확인한다.

 

위에 표시된 ni-488.2, ni-visa가 설치되어 있으면 드라이버는 설치되어 있다고 보면 된다.

 

시리얼 통신 관련 vi들은 인스트루먼트i/o->시리얼로 들어가면 볼 수 있다.

이와 같이 시리얼통신은 ni-visa를 사용하기에 ni-visa가 필수로 설치되어 있어야한다.

가장 간단한 시리얼통신

위 블록다이어그램과 같이 하면 간단하게 시리얼 통신이 가능하다.

이는 랩뷰 예제에서 쉽게 찾아볼 수 있는 형태이다.

이를 응용하여 자신이 원하고자 하는 프로그램에 적용하면 랩뷰를 이용한 시리얼 통신은 간단하게 가능하다.

 

위 소스내용중에 주의 할 점은 딜레이 쪽인데 장비와의 소통시간이 필요하기때문에 딜레이는 필수로 들어가야한다.

딜레이가 없을 시 데이터는 vi가 종료된 후 날라올 것이기 때문에 확인이 불가능하다.

딜레이가 싫은 사람은 옆에있는 Bytes at Port를 이용해서 while문과 함께 사용해도 된다.

이렇게 하면 500ms동안 데이터가 들어오는지 안들어오는지 확인을 하게 된다.

500ms동안 보는 것을 만들어놓은 이유는 해당 부분이 없으면 장비가 정상연결이 안되어있으면 무한루프에 빠질 수 있기 때문이다.

반응형
LIST

랩뷰 LABVIEW GPIB 통신(VISA 사용)

프로그래밍/LABVIEW
반응형
SMALL

오늘은 랩뷰 GPIB 통신에 대해서 보려고하는데요.

우선 GPIB통신이 무엇인지 부터 알아야겠습니다.

GPIB의 약자 같은거는 굳이 알 필요는 없겠죠.

단순하게 장비와 통신하기위한 방법이라고만 알고 있으면 되겠습니다.

 

GPIB 통신을 하기위해서 장비와 PC간 연결이 잘되었는지 확인을 해야합니다.

이것은 NI MAX에서 연결되어진 장비를 확인해 볼 수 있습니다.

 

연결되어진 장비가 있으면 디바이스와 인터페이스에 확인이됩니다.

GPIB로 연결되어진게 있으면 GPIB::02::INSTR 대략 이런식으로 되어 있는것을 볼 수 있습니다.

GPIB로 연결되어 있으면 대부분 VISA 방식을 이용해서 하는데요.

랩뷰에는 이것이 되게 쉽게 잘 되어 있습니다.

기존 C기반의 언어들을 보면 VISA32.DLL 같은 것들 넣고 어쩌고 복잡한 과정을 해줘야 하는데요.

랩뷰는 기본적으로 다 구성되어져 있어서 가져다 쓰기만하면됩니다.

이렇게 VISA 관련 내용들이 다 있죠.

C언어에서 쓰듯이 OPEN 하고 쓰고 읽고 하면 됩니다.

OPEN은 VISA 고급을 눌러보면 확인이 가능합니다.

그러면 이제 이 VISA 통신 예제를 확인해볼게요.

랩뷰 예제를 보면 쉽게 확인 됩니다.

이렇게 GPIB를 VISA를 사용해서 하는것에 대해 예제프로그램이 있습니다.

이것을 입맛에 맞게 변형해서 사용하면 쉽게 되겠죠

이렇게 간단하게 사용할 수 있습니다.

 

간단하게 드래그 앤 드롭으로 GPIB 통신이 되죠.

할 것은 GPIB 커맨드만 확인해주면 되겠습니다.

간혹 장비마다 터미널 문자가 틀리면 동작이 안 할 때가 있는데 그 때는 문자열에 다 추가해주면되겠죠.

 

이상 GPIB VISA 방식에 대해서 알아봤습니다.

반응형
LIST