예제1을 보면 5번에 "인수로 받은 i와 j가 정수형 변수임을 선언한다. 꼭 해야 한다."
라고 적혀있는데 제가 배우기로는 선언시에만 매개변수의 자료형을 적어주고
정의시에는 변수명만 적어줘도 된다라고 배웠습니다.
정의시에 정수형 변수임을 꼭 선언해야한다고 작성하신 이유가 궁금합니다.
visual studio 2019에서 컴파일해봤을때 정의시 5번(int i, j);을 적지 않아도 에러가 전혀 발생하지 않았습니다.
혹 다른 ide에서 작성시 문제가 발생할 수 있는건가요?
안녕하세요 길벗수험서 운영팀입니다.
매개변수의 자료형은 생략할 경우 자동으로 int형으로 인식하기 때문입니다.
때문에 i, j에 대한 자료형을 생략해도 컴파일 시 그 자리에 자동으로 int가 들어가서 실행되기 때문에 오류가 발생하지 않는 것이죠.
(a, b를 double로 선언하고 func함수에서 %f 로 출력하면 i, j는 int이기 때문에 서식 지정자가 잘못되었다는 경고가 뜹니다.)
매개변수는 인수로 보내진 값을 저장하는 변수이기에 값을 어떠한 형태로 저장해야 하는지 그 자료형을 지정해주어야 합니다.
때문에 없어서는 안되는 것이죠.
실무에서 int형이라도 해당 코드를 다른 사람이 보았을 때 변수의 자료형을 확실히 알 수 있도록 int를 적어주는 것이 좋습니다.
(또한 컴파일러 버전에 따라 생략 시 int형으로 자동변환되지 않을 가능성도 있습니다.)
행복한 하루되세요 :)
-
관리자2020-07-06 13:13:18
안녕하세요 길벗수험서 운영팀입니다.
매개변수의 자료형은 생략할 경우 자동으로 int형으로 인식하기 때문입니다.
때문에 i, j에 대한 자료형을 생략해도 컴파일 시 그 자리에 자동으로 int가 들어가서 실행되기 때문에 오류가 발생하지 않는 것이죠.
(a, b를 double로 선언하고 func함수에서 %f 로 출력하면 i, j는 int이기 때문에 서식 지정자가 잘못되었다는 경고가 뜹니다.)
매개변수는 인수로 보내진 값을 저장하는 변수이기에 값을 어떠한 형태로 저장해야 하는지 그 자료형을 지정해주어야 합니다.
때문에 없어서는 안되는 것이죠.
실무에서 int형이라도 해당 코드를 다른 사람이 보았을 때 변수의 자료형을 확실히 알 수 있도록 int를 적어주는 것이 좋습니다.
(또한 컴파일러 버전에 따라 생략 시 int형으로 자동변환되지 않을 가능성도 있습니다.)
행복한 하루되세요 :)