- #include
- #define week 7
- int main(void) {
- int days;
- while (days > 0)
- {
- }
- return 0;
- }
/* Programming Exercise 5-3 */
#include
int main(void)
{
const int daysperweek = 7;
int days, weeks, day_rem;
printf("Enter the number of days: ");
scanf("%d", &days);
while (days > 0)
{
weeks = days / daysperweek;
day_rem = days ysperweek;
printf("ays are %d weeks and ays.\n",
days, weeks, day_rem);
printf("Enter the number of days (0 or less to end): ");
scanf("%d", &days);
}
printf("Done!\n");
return 0;
}
위에는 문제보고 제가 푼거고
아래는 답지인데요
사실 저도 맞은 것 같은데 아래는 weeks랑 day_rem 변수를 선언해서 전달인수에 변수를 넣었더라구요
저는 전달인수에 수식을 넣었는데 아래처럼 하는게 더 좋거나 프로그램이 빠르다거나 있나요 ?
아무런 차이도 없어요
걍 편한데로 쓰면 되는건가요 ?
넹
dom-tree 그려보면 해당 변수가 KILL 되기때문에 변수를 선언한 의미가 없어져요
dom-tree를 첨 들어봐서 알아보고 해보겠습니다 감사합니다!
저런간단한 예문에선 뭐 굳이 의미가 없긴 한데 간단히 설명하자면 디파인은 전처리문으로써 컴파일 되기전에 week은 7이라고 고정박는거 밑의것은 변수 영역을 저장할때 공간 할당해서 데이터 처리를 하는거... 두개중에 가장 큰차이는 메인이 끝나도 week = 7이란 데이터가 남아있느냐 안남아있느냐 차이일거 같은데..
아 제가말한건 그게아니라 그 days / week 이랑 days % week 에 관한 질문이에요
아 그거는 위에건 printf 끝나면 데이터가 날아가잔아 근데 밑에거는 printf끝나도 변수에 저장되어 있기때문에 재활용성에선 밑의것이 더 좋긴 한데 뭐 그냥 저건 너무 기초적인거라 의미가 없...공간적으로는 위에것이 좋은거 같고 속도면에서는 밑의것이 나은거 같음 위에건 함수를 부르고 나서 그 함수안에서 계산처리하는데 아래건 그전에 이미 변수만으로 처리해버렸으니 근데 그닥 의미가 없고 .. 프로그램 목적에 따라 위엣게 나을수도 있고 아랫게 나을수도 있고 물론 저정도 프로그래밍이면 전혀 아무 의미가 없긴함..
아하 감사합니다.. 저는 현업에서 좋은 습관같은게 따로 있는줄 알았습니다 감사합니다!!