C언어 간단한거 질문좀
익명(112.184)
2019-07-25 09:58
추천 0
댓글 12
다른 게시글
-
보람튜브 구독박음 [1]익명(115.22) | 19.07.25추천 0
-
db 1억건 조회 정도는 암거나 써도 상관없냐? [4]익명(110.44) | 19.07.25추천 0
-
파이썬 코드는 볼수록 기괴하네 [5]휫자(218.234) | 19.07.25추천 1
-
컴알못인데 mySQL이랑 하둡이랑 뭔차이임? [6]익명(220.68) | 19.07.25추천 0
-
근데 서버를왜만듬? 걍 [2]익명(220.117) | 19.07.25추천 0
-
난또 서버를 만든다는게 [3]익명(220.117) | 19.07.25추천 0
-
자바르 서버를 만든다는게 [3]익명(220.117) | 19.07.25추천 0
-
머신러닝 딥러닝 교육의 함정은 [1]익명(165.132) | 19.07.25추천 0
-
일본 si 발암의 현장 [5]마호로(118.217) | 19.07.25추천 0
-
아침 알바 수위 확인 [2]익명(106.102) | 19.07.25추천 0
Srand가 unsigned를 받는갑네.
ㄴㄴ 다른 문제보면 (unsigned) 생략하는데 유독 이문제만 unsigned를 받네
난수에 음수는 필요 없을테고.
앞에 언사인드 형변환하는건 time의 리턴값에 영향을 주는게 아니고 srand가 받아갈 파라미터에 영향을 주는것임
그럼?? 원래 앞에다가 형변환 하는거아니야? int num; 이 있으면 num을 char 형태로 변환할라면 (char)num 이러잖아
그러니까 time이 원래 signed int를 반환한다면 앞에 형변환이 있어도 time 자체가 반환하는건 singned가 맞고 리턴된 후에 unsigned로 바뀌어 srand가 받아간다고.
Signed Int가 Unsigned int로 형변환되는게 명시적이 아니어도 되는지 안되는지 정확한 기억은 없으나 다른데서 안써도 되었던거면 암묵적으로 형변환이 일어나는데 이 코드는 그걸 명시적으로 했던지. Srand 원형 찾아봐.
srand 함수는 매개변수가 unsigned int형인데 time 함수는 반환형이 time_t임. 근데 이 time_t가 시스템에 따라선 부동소수점인 곳도 있으니 명시적으로 형 변환해줘야 함
이해됨 근데 왜 다른 문제에서 (unsigned) 생략해도 문제가 없엇던걸까?
컴파일러 따라서 컴파일 되기도하고 안되기도 하는데 자기가 쓴게 되니까 그냥 넘어갔겠지.
답변 고맙다
컴파일러마다 처리가 달라서 for (int i=0;i<5;i++) 이런 구문도 vc랑 gcc랑 처리가 달랐음 요즘은 표준 적용을 얼마나 해서 어떻게 다른지같은지 모르나 예전에는 둘 중에 하나는 저 구문에서 int i가 한쪽 컴파일러는 for 루프 안에 스코프를 갖고 다른쪽은 for밖에 int i 선언한거랑 같고 그렇게 다르게 처리했음.