저는 C에 대해 처음 접했고 단지 Compound Literals를 발견했을 뿐이므로 제 질문이 정확하지 않으면 제게 올바른 말을하십시오.Compound Literal 안의 변수 초기화하기
구조체가 있습니다.
typedef struct
{
int someVal;
} foo;
이제이 내용을 다음으로 초기화 할 수 있음을 이해합니다.
int main()
{
foo thisFoo = (foo) { .someVal = 2 };
}
제 질문은 무효 기능으로 someVal
을 초기화 할 수 있습니까? 이 대안 (또는 합리적인) 선택 인 경우
void init(int *f);
int main()
{
foo thisFoo = (foo) { init(.someVal) }; // error: expected expression before '.' token
}
void init(int *f)
{
*f = 2;
}
나는 아무 문제없이 함수에서 구조체 자체와 각각의 멤버를 초기화하는 데 성공하지만 궁금했다?
'foo thisFoo; init (& thisFoo.someVal);'...'void init (int * f) { * f = 2; }' – BLUEPIXY
@BLUEPIXY 그가 구조에 대해 알기를 바라지 않는다고 생각합니다. – Barmar
@Barmar 확실하게, 나는 수정했다. – BLUEPIXY