2012-09-30 2 views
1

어제 저는 시험을 치렀고 다음과 같은 질문이있었습니다 : 두 개의 숫자 중 더 큰 숫자를 찾으려면 typedef를 사용하여 프로그램을 작성하십시오.프로그램에서 typedef 사용하기

그래서이 문제에 대한 해결책은 명백합니다. 하지만 우리는 typedef를 사용해야합니다. 그 상태입니다. 그래서 제가 한 일입니다.

#include <stdio.h> 

typedef struct { 
    int a; 
}LARGE; 

void main() 
{ 
    LARGE a,b; 
    int c; 
    scanf("%d%d", &a.a,&b.a); 
    c = large(a.a,b.a); 
    printf("%d", c); 
} 

이것은 주 프로그램이며 두 개의 숫자 중 가장 큰 숫자를 반환하는 large() 함수를 작성했습니다.

내 프로그램에서 키워드 형식 정의를 추가하는 방법이다, 그러나 부서 교사는 우리가 내가, e는 구조에서 사용할 새 이름을 만들 수 타입 정의를 사용하지 않아야 말한다 :

typedef int large a,b; 

지금 큰이있다 int의 새로운 이름.

그러나 질문에 명시 적으로 typedef를 사용하여 데이터 유형의 새 이름을 만들도록 지정하지 않았으므로 typedef를 사용하여 구조체를 사용하여 프로그램을 작성 했으므로 올바른 방법을 알려주십시오.

미리 감사드립니다.

+1

분명히 선생님이 그것을 엉망으로 만들었습니다. Q는 "typedef를 사용하여"* 프로그램에 질문했습니다. 귀하의 프로그램은 그렇게합니다. 그것은 질문 된 Q에 대한 답으로서의 자격이 있습니다. –

+1

동의합니다. 솔루션이 가장 확실한 방법은 아니지만 (구조체의''typedef''는 기본적으로 매번''struct''를 입력하지 않아도되는 단순한 방법입니다), 그럼에도 불구하고 틀린 것은 아닙니다. 모호한 방법으로 질문을 표현하면 –

+0

그래, 무슨 말을하는거야 내 대답은 바로 대답은 typedef를 사용하여 두 숫자 중 가장 큰 것을 반환하는 프로그램을 작성하는 것이므로 typedef를 사용하여 두 숫자 중 가장 큰 수를 반환하는 프로그램을 작성했습니다 –

답변

0

그러나 typedef를 올바르게 사용하려면 기존 데이터 형식의 별칭을 만드는 것이 좋습니다. 익명 구조체의 이름을 붙이기 위해이 구조체를 사용한다면 (그것은 완벽하게 유효한 사용이다), 그러면 레슨의 요점을 놓치고있는 것처럼 보인다.

귀하의 답변은 실제로 유효합니다. 문제는 선생님이 아마도 int에 다른 이름을주고 싶다는 것입니다.