설명좀
j=0, ++j+=++j+j++;
알려죠(39.120)
2017-05-28 23:26
추천 0
댓글 22
다른 게시글
-
질문(사진첨부) [2]프갤늒네(kancolekai) | 17.05.28추천 0
-
씽크패드 어떰? [1]ㅁㄴㅇ(168.131) | 17.05.28추천 0
-
님들 저 질문잇슴프갤늒네(kancolekai) | 17.05.28추천 0
-
c로 프로젝트 해야하는데 주제 추천좀요 [3]익명(211.111) | 17.05.28추천 0
-
개발자는 레이저 블레이드??펜져(penzer27) | 17.05.28추천 0
-
형님들 html 질문좀12(175.213) | 17.05.28추천 0
-
25살때 1학년이면 그렇게느켜질수도있는데 34학년되면 노인네들많아져서 갠찮아익명(223.62) | 17.05.28추천 0
-
ㅎㅂ)형님들 컴 맛갔는데 도와주세요.컴퓨터맛감(211.216) | 17.05.28추천 0
-
이제 뭘 해야 하나 한숨만 나온다....익명(211.208) | 17.05.28추천 0
-
아오... 사무실 걸어서 10분인데 다음 주는 1시간 넘게 걸려 본사 출 [1]웹땔감dz(118.33) | 17.05.28추천 0
undefined behavior
++j 는 j를 먼저 더하는거고 j++은 나중에 j를 더하는거고
ㄴ undefined behavior 라니까
j를 먼저 더함. j = 1, j를 또 먼저 더함 j = 2, j에 j + j를 더함 j = 6, j++때문에 이 행이 끝나면 j가 하나 더해짐
ㅇㅇ 천재
따라서 7일듯.
커헠/댐
자동 정렬 기능 쓰면 보기 편해짐
main: .frame $fp,24,$31 # vars= 8, regs= 1/0, args= 0, gp= 8 .mask 0x40000000,-4 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-24$LCFI0: sw $fp,20($sp)$LCFI1: move $fp,$s
응 7이 나오든 8이 나오든 할말없는 코드~
좌변의 ++ 를 제거해야 컴파일되고, 그렇게 컴파일 해도 저건 undefined behavior 라서 결국은 잘못된 코드임 끗
방금 돌려봤는데 안 돌아간다 좌변 rvalue 라고 지랄함
제대로 안 나오네? assem으로 봐라
ub맞아 - dc App
어쨋든 돌아가는 clang에서라도 -Wall 인자 전달하면 저거 undefined behavior 라고 경고뜸. 얘기 끗
프알못이라 그러는데 왜 제거해야됨? 그리고 112.214가쓴건 무슨뜻임?
https://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points
다시 해보니까 다 컴파일은 되네 ㅇㅇ
한줄당 한번만 증감연산자 사용가능함?
그게 안전한 사용 방법임
오 저런게 있었구나 첨알았네
컴파일은 당연히 되어야지. j++은 안돼도 ++j는 엄연히 lvalue로 사용 사능한데