는 여기에 기본 변수가 10
될 size
방법 다음 struct
기본 구조체가있는 struct struct?
typedef struct d {
unsigned int size: 20;
} D;
질문이 있습니다. 고마워!
는 여기에 기본 변수가 10
될 size
방법 다음 struct
기본 구조체가있는 struct struct?
typedef struct d {
unsigned int size: 20;
} D;
질문이 있습니다. 고마워!
C에서 유형은 변수의 기본값을 지정할 수 없습니다. C++을 생성자와 함께 사용하거나 인스턴스화 할 때 변수를 체계적으로 초기화해야합니다.
C에서는 기본값이나 생성자 같은 것이 없습니다. 일부 기본 값을 사용하여 struct
을 초기화하는 함수를 작성해야합니다. 또는 C++로 전환하여 struct
의 멤버를 일부 기본값으로 초기화하는 생성자를 만들 수 있습니다.
: 20
의 내용은 unsigned int size: 20
의 의미는 here을 참조하십시오.
bit fields에 대한 위키 백과 문서입니다. u는 OOP 언어로 생성자의 개념과 유사 것을 사용한다 구조 멤버 기본 ..
typedef struct d {
unsigned int size;
} D{20};
당신은 당신의 객체를 생성 wenever 구조체 멤버에 대한 기본 값을 지정할 수 있습니다이 방법의 값을 만들기위한
그 구조는 ...
는
pratik의 제안 (typedef
자신의 사용 오타가 가정) 작동합니다 :) .. 희망은 도움이되지만 주위에 떠있는 글로벌 객체를 떠난다. 대안 기술 :
struct d {
unsigned int size;
};
/* use only *one* of these next lines */
#define D (struct d){20} // C99
#define D {20} // C89
…
struct d foo = D; // in either case
C99 버전은이 "생성자", 예를 들어, 일부 오용을 잡을 수있는 장점이있다,
struct d {
unsigned int size;
};
#define D99 (struct d){.size = 20}
#define D89 {20}
…
float a[17] = D89; // compiles, but is that really what you meant?
float b[17] = D99; // will not compile
또한, 당신은 아마 인수와 함께, 더 복잡한 생성자를 만들 수있는 "복합 리터럴"기술을 사용할 수 있습니다.
'typedef'가 있어야하나요? –
그게 필요하지 .. 아니 그냥 .. 그냥 간과 .. 그냥 코드를 복사하고 여기에 붙여 넣기 ... – pratik
그것은 필요하지 것보다 더 나쁘다는 뜻 : 그것은'typedef 구조체 D 조;'_and_' 구조체 D 조 = {20} ;- 이렇게 컴파일되지 않습니다. 내 대답을 보라. –