인그니야
1k
2021-03-29 19:15:25
4
130

C, C++ 표준함수 선택하는 기준이 무엇인가요?


안녕하세요!

임베디드 개발자로 계속 C만 다루다가 이번에 업무 때문에 C++ 스터디해서 쓰고 있는데 궁금한 게 생겼네요.


크게 두 가지가 있는데요.

1. C++ 에서는 C 표준 라이브러리보다 C++ 표준 라이브러리를 더 우선시해야 하나요?

표준 입출력함수를 C에서는 stdio.h가 제공하고 C++에서는 iostream이 제공하잖아요? C++에서는 양쪽 다 사용가능하고 양쪽 입출력 함수의 동작도 거의 비슷하구요.

어떤 기준으로 표준 라이브러리를 선택해야할 지 잘 모르겠네요.


2. C++ 에서는 구조체를 어느 경우에 주로 활용하나요?

C에서 구조체가 했던 역할의 대부분을 C++에선 클래스가 담당하고 있는데, 그러면 구조체는 이제 무슨 경우에 활용되나요?

데이터를 비트 단위로 다루는 것 빼고는 안떠오르네요.



0
  • 답변 4

  • 캐티
    1k
    2021-03-29 19:35:01

    임베디드에서 주로 C언어를 사용하는 이유는 함수의 용량 때문이빈다. C++ 는 OOP 등으로 인하여 약간 더 많은 메모리를 소비하빈다.

    클래스는 상속 같은걸 지원하여 확장되빈다. 구조체도 구조상으로는 상속을 해서 확장이 가능하지만 이쪽은 보통 상속을 안하빈다. 대신 구조체 포인터를 쓰빈다. 특히 네트워크 임베디드 시스템을 한다면 많이 쓸 듯 한쩌여.

    -2
  • 인그니야
    1k
    2021-03-29 21:31:32

    캐티 / 

    네트워크에서 구조체 포인터 쓰는 건 패킷 데이터 다루기 위함이죠.

    결국 C++ 에서 구조체는 그런 용도 밖에 안쓰이는 걸까요.

  • 인라이너
    456
    2021-03-30 06:45:39

    class 는 private 가 기본, struct 는 public 이 기본인 자료구조입니다. 둘의 차이는 이것뿐입니다.


    http://net-informations.com/faq/oops/struct.htm#:~:text=Class%20can%20create%20a%20subclass,members%20are%20public%20by%20default.

  • 캐티
    1k
    2021-03-30 14:04:12

    근데 머 구조체라는게 C언어에서 컨텍스트 용도로도 중요하게 사용되빈다. 보통 싱글톤 형태 프로그램이 많지만 2개이상 복수의 인스턴스를 다루는데 C언어 기반에서 구조체를 써야하빈다.

    C++ 에서도 여전히 구조체를 인자로 전달하는 로직은 사용될 수 있스빈다. 항상 정해진 구조데이터가 10개이면 이걸 인자로 10개를 다 넘겨줄때 불편할 수 있는데 구조체를 1개 레퍼런스로 전달하면 좋은쩌여.

  • 로그인을 하시면 답변을 등록할 수 있습니다.