Re: unit 64 질문이요!
, 도장_ 관리자님이 작성(int)로 쓰면 오류가 발생합니다.
복합 리터럴을 쓸 수 있다는 참고일 뿐이고, C 언어 코딩에서 거의 안 쓰이는 내용입니다. 그러니 본문이 아니라 <참고>이고요.
2차원 배열은 변수에 담아서 변수로 전달하는 게 보통이고, 복합 리터럴을 만들어서 전달하지는 않으니까요.
C 언어 표준안 6.5.2.5 Compound Literals 항목을 보면...
1차원 배열에 대한 복합 리터럴에서도 int []나 int [2]로 썼습니다. (int)[]나 (int)[2]로 쓰지 않았습니다.
구조체를 인수로 받는 함수의 경우에도 별도로 구조체 변수를 선언하지 않고 복합 리터럴로 전달할 수 있습니다.
저는 저자가 아니므로 (자료형)으로 표기한 이유는 모릅니다.
저자 사이트에 가서 직접 문의하시는 게 좋을 겁니다.
어쨌거나 C 언어 표준에서도 ()는 안 쓰고, 쓰면 Visual Studio에서도 컴파일이 안 됩니다. (int)로 쓰면 (int)로 변환하라는 형변환이 되기 때문에 식이 아닙니다.
Visual Studio에서는 식이 필요하다는 오류 메시지를 표시합니다.
저는 저자의 의도까지는 설명하지 못합니다.
아닌 건 아니고요. ()는 쓰지 마세요. 예제 코드는 올바르게 작성되어 있고, 위에 예시에만 ()를 쓴 건 구분을 위해 쓴 게 아닌가 싶습니다.
참고하세요.