심사문제 79.8
, . JG님이 작성static Point2D;
int x = 10;
int y = 20;
return x+offset;
return y+offset;
//이게 왜틀리다고 돼는지 잘이해가안가요..
회신: 심사문제 79.8
, 도장_ 관리자님이 작성return을 두 번 할 수 없습니다.
앞의 연습문제와 예제를 보면 코드가 대부분 다 있습니다.
차례대로 학습하면 다 있는 코드의 응용입니다.
참고하세요.
회신: 심사문제 79.8
, . JG님이 작성static Point2D;
int x = 10;
int y = 20;
x += offset;
y += offset;
//이상태에서 2를 대입하면 22 22 22 0 250291644 250291644
//가 나오는데 왜이런지 제 머리로는 이해가안가네요.. 앞에 예문 다살펴봐도 이해가안되요.. 코드가 왜 저렇게 나오는지라도 설명좀해주세요
회신: 심사문제 79.8
, 도장_ 관리자님이 작성지금까지 제출한 코드를 봐서는 전체적인 이해를 하지 못한 것으로 보입니다.
한 번에 끝낸다는 마음보단 3회 반복한다는 마음으로 보는 게 낫지 않을까 싶습니다.
static과 struct는 다릅니다. struct는 Unit 48부터 등장합니다. 문의한 Unit 79이면 struct와 static이 이미 여러번 쓰였을 것입니다.
return을 이해하지 못하고 있습니다. Unit 62.2에서 덧셈 함수 만들기를 설명하고 있습니다. Visual Studio의 경고 메시지를 잘 살펴보세요. return 0 하지 말고 movePoint 값을 반환하라고 경고해주고 있습니다.
warning C4716: 'movePoint': 값을 반환해야 합니다.
구조체와 구조체 멤버, 구조체를 반환하는 함수에 대해서도 이해가 필요합니다.
현재 상태로 C 언어 학습을 마치고, 자바나 다른 객체 지향 언어로 넘어가면 부실한 기초 위에 건물을 올리는 형태가 될 수 있습니다.
static sa = 0;
C 언어 코딩 도장 전체에 이런 코드는 없습니다.
Visual Studio에서 static Point2D;라고 쓴 부분에 마우스를 가져가보세요.
<error-type>입니다. static은 기억 부류 지정자입니다. Unit 79에 설명되어 있습니다. 즉, 데이터 타입이 아닙니다. C 언어는 B 언어에서 넘어왔고, B 언어는 데이터 타입을 명시하지 않는 언어였습니다. 그런 관습이 남아서 타입을 쓰지 않으면 int 타입으로 간주해서 일단 처리합니다. static Point2D는 지금까지 구조체를 쓴 적이 없으며, int 타입이고, 이름은 Point2D였다는 뜻입니다.
한 번에 완벽하게 하기보단 3회 정독하는 것이 더 이해를 깊게 해줄 것입니다.