티스토리 뷰

낙서

C와 C++에서의 구조체 차이

nodeal 2018. 1. 14. 13:41

별로 길게 이야기 할 것도 없는 주제다. 사실 인터넷 찾아보면 금방 찾을 수도 있는 내용이지만 나를 위해 표로나 정리해보고자 했다.


 

C

C++

멤버함수 선언

불가능

가능

struct MyStruct {
    void member_function(); // C는 불가능
};

구조체 내부 변수 초기화

불가능

가능

struct MyStruct {
    int variable = 0; // C는 불가능
};

초기화시 struct 키워드

필요

불필요

struct MyStruct {};

void foo() {
    struct MyStruct my_struct = ~~; // C
    MyStruct my_struct = ~~; // C++
}

정적 멤버 변수 또는 함수

불가능

가능

struct MyStruct {
    static int variable; // C는 불가능
};

빈 구조체 sizeof 연산자

0

1

struct MyStruct {};

void foo() {
    printf("%d\n", sizeof(struct MyStruct)); // C로 컴파일시 0
    std::cout << sizeof(MyStruct) << std::endl; // C++로 컴파일시 1
}

데이터 은닉

불가능

가능

접근 한정자

불가능

가능


출처: 링크 (영어)

'낙서' 카테고리의 다른 글

[Java] 소켓 서버 만들기  (0) 2018.01.19
C++ 구조체와 클래스의 차이  (0) 2018.01.14
C와 C++에서의 구조체 차이  (0) 2018.01.14
빠른 프로그램, 동적 프로그래밍  (0) 2017.10.19
Java에는 포인터가 없다?  (0) 2017.10.19
C++ #pragma once  (0) 2017.10.19
댓글
댓글쓰기 폼