예를 들어 다음과 같은 구조체가 있다고 할때.
typedef struct { char school[128]; char name[64]; char id[32]; }MEMBER;
위와 같은 MEMBER구조체에서 school의 값을
항상 "test"로 초기화할 방법이 있나요?
초기값을 주는 것 이외에는 특별한 방도는 없을 것 같습니다.
#define MEMBER_DEFAULT { "test", "", "" }
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html Korean Ver: http://cinsk.github.io/cfaqs/
C컴파일러만을 사용해야하는게 아니라면 생성자를 만들어주셔도 될거 같은데요. 근데 솔직히 c에서는 어떻게 되는지 모르겠군요 -_-;;
struct MEMBER { .... MEMBER(); };
C++에서 도입된 Class 부터입니당
자동 또는 정적 변수일 때는 매크로로 그럭저럭 되겠지만 동적 할당을 할 경우에는 방법이 없겠는데요. C++의 생성자만이 완벽한 해결책이겠네요.
님이
한거는 오로지 변수형의 선언을 한것일뿐입니다..즉 이런 변수형태가 있다라는것을 정의할 뿐이기 때문에 변수형에 값을 대입하는건 있을수가 없는 일입니다.
단,변수(변수형이 아님)를 선언할경우에는 초기화가 가능합니다.
자칫 착각을 하지 않았는지 생각해 보시기 바랍니다.:-)
그리고
typedef를 사용하지 않는다면
struct xxxx{ .... }xxxx_t={};
이런형태로 변수선언과 초기화가 가능합니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
초기값을 주는 것 이외에는 특별한 방도는 없을 것 같습니다.[co
초기값을 주는 것 이외에는 특별한 방도는 없을 것 같습니다.
처럼 정의하시고 쓰시는 것이 어떨까 합니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
C컴파일러만을 사용해야하는게 아니라면 생성자를 만들어주셔도 될거 같은데요
C컴파일러만을 사용해야하는게 아니라면 생성자를 만들어주셔도 될거 같은데요. 근데 솔직히 c에서는 어떻게 되는지 모르겠군요 -_-;;
생성자 개념은
C++에서 도입된 Class 부터입니당
자동 또는 정적 변수일 때는 매크로로 그럭저럭 되겠지만 동적 할당을 할
자동 또는 정적 변수일 때는 매크로로 그럭저럭 되겠지만 동적 할당을 할 경우에는
방법이 없겠는데요. C++의 생성자만이 완벽한 해결책이겠네요.
-_-;
님이
typedef struct
{
char school[128];
char name[64];
char id[32];
}MEMBER;
한거는 오로지 변수형의 선언을 한것일뿐입니다..즉 이런 변수형태가 있다라는것을 정의할 뿐이기 때문에 변수형에 값을 대입하는건 있을수가 없는 일입니다.
단,변수(변수형이 아님)를 선언할경우에는 초기화가 가능합니다.
자칫 착각을 하지 않았는지 생각해 보시기 바랍니다.:-)
:-)
그리고
typedef를 사용하지 않는다면
struct xxxx{
....
}xxxx_t={};
이런형태로 변수선언과 초기화가 가능합니다.
댓글 달기