2011-09-27 5 views
1

구조체에 정수의 기본값을 설정하는 방법을 알 수 없습니다. 예를 들어구조체에있는 정수의 기본값

typedef struct { 
     char breed[40]; 
     char coatColor[40]; 
     int maxAge = 20; 
    } Cat; 

위의 코드는 실행시 오류가 발생합니다. '예상'; 선언 목록 끝에

+1

가능 중복 실제 아니다 값을 C 구조] (http://stackoverflow.com/questions/749180/default-values-in-ac-struct) – Joe

답변

8

당신은 당신이 아마 원하는 것은 당신의 구조체의 사용자가 먼저 전화해야에 '초기화하기'스타일의 함수이다 C.에서 기본값을 지정할 수 없습니다 :

struct Cat c; 
Cat_init(&c); 

// etc. 
+0

감사합니다 마이크! – jingo

7

구조에서 기본값을 지정할 수 없습니다. 이 구문은 단지 존재하지 않습니다.

2

간결하게, 당신은 할 수 없습니다. 그것은 단순히 C.

의 기능이 아닙니다
0

구조는 유형입니다. 유형 (모든 유형)에는 기본값이 없습니다.

// THIS DOES NOT WORK 
typedef char = 'R' chardefault; 
chardefault ch; // ch contains 'R'? 

당신은 초기화에서 개체에 대한 값을 지정할 수 있습니다

char ch = 'R'; // OK 
struct whatever obj = {0}; // assign `0` (of the correct type) to all members of struct whatever, recursively if needed 
0

당신은 초기화 할 수 있지만 (더 나은 사용자 정의 기능을 사용하는) 문자열 [기본의

typedef struct { 
     char breed[40]; 
     char coatColor[40]; 
     int maxAge; 
} Cat; 

Cat c = {"here39characters40404040404044040404040", 
     "here39characters40404040404044040404040", 
      19 
};