for문을 돌린 후 아래 누적된 result값을 십진수로 변환하여 프린트하니, 이전에 것들 (result 값)을 십진수로 변환해서 누적하셨는데, 이 부분이 이해가 안가서 질문드립니다.... int f(char score) { return score & OxA5 } 에는 십진수로 변환하는 것이 없으니 오류가 나는 것이 맞지 않나요? 아니면 c언어에서는 return 할 때, 자동으로 2진수를 십진수로 변환하는 것인가요?
SetSkillFrame함수에서 먼저 frame들을 다 삭제시키고 다시 생성하고있는데요 frame내에서 saveCooltime도 다 삭제가되니 레벨업을하고 다시 UI가 초기화될때 쿨타임도 아예 초기화가 되버리는 것같은데 제가 놓친부분이 있나요? 그리고 SetSkillFrame함수는 MANAGER.SESSION.onSelectedCard 델리게이트에 바인딩 시켜놓으면 되는건가요?
public void lock() { while (!owner.compareAndSet(false, true)) LockSupport.parkNanos(1); } 강의에서 직접 구현하신 스핀락에서 LockSupport.parkNanos() 를 사용하셨을 때, 컨텍스트 스위칭이 발생하지 않는다고 설명해주셨는데요. 실제로 예제 코드에서 Thread.getState() 로 스레드 상태를 확인해보니, parkNanos() 호출 시 스레드가 TIMED_WAITING 상태로 전환되었다가 지정한 시간이 지나면 RUNNABLE 상태로 바뀌는 것을 확인했습니다. 그렇다면 지정한 시간이 지난 후 RUNNABLE 상태가 되었을 때, 해당 스레드에 대해 컨텍스트 스위칭이 발생하는 것이 아닌지 궁금합니다. 또한 강의에서는 parkNanos() 가 실제로 블로킹되는 것이 아니라 내부적으로 스피닝한다고 설명해주셨는데, 만약 그렇다면 스레드 상태가 RUNNABLE 이어야 하지 않을까 하는 의문도 들었습니다. 이 부분이 조금 혼란스러워 이렇게 질문드리게 되었습니다.
강의 중에 사용하신 init 관련 코드에서 하나 궁금한 점이 있습니다. BaseController 의 Awake() 안에서 _init = true 를 먼저 설정한 다음 init() 을 호출하게 되면, init() 안에서는 이미 _init == true 상태라서 실제 초기화 로직이 수행되지 않고 false 만 반환하게 되는 것 같습니다. 그런데 MonsterController 에서는 base.init() 이 true일 때 return 하도록 돼 있어서, 결과적으로 자식 클래스의 초기화 로직이 실행되지 않을 수도 있어 보인다 는 생각이 들었습니다. 혹시 의도된 흐름이 맞는지, 아니면 _init = true 설정 위치나 분기 조건 쪽에 조정이 필요한 부분이 있는지 궁금합니다.
bagPtr -> year =2021; 이렇게 포인터 변수에서 멤버변수에 접근할때 -> 이거 사용하는건 이해가 되는데 , 출력함수에서 매개변수가 bag의 포인터 변수인거 같고.. 근데 printf 에서 %s에 들어가는 가는 값을 왜 bag->brand 라고 적어두신지 이해가 잘 안가요..
안녕하세요 강의 공부하다가 궁금증이 생겨서 질문합니다. 강의에서는 .csv를 사용해서 레벨 데이터를 저장하고 가져오는 방법을 사용하셨는데 서드파티 데이터베이스로 구현을 해놓고 넣었다 빼는 방식을 사용해도 괜찮을까요? 그러면 앱 업데이트를 할 필요없이 DB상의 값을 바꾸는 것만으로도 난이도를 조정할 수 있을 것 같아서요. 현직에서는 어떻게 구현하는지 궁금해서 질문합니다.
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 섹션2 배열도입 11:42부분 그림을 보고 궁금증이 생겼습니다. 왜 student1,student2 객체를 따로 만들어서 students배열에 대입하는 건가요? for(int i=0;i<students.length;i++) students[i]=new students(); 이렇게 객체를 생성하는것이 메모리 낭비가 없기 때문에 더 효율적인 것 아닌가요?
EXAM 배열 예시에서 *p++는 p 주소의 주소값이 증가되었는데, ++*p는 왜 포인터 변수가 가르키는 값의 아스키코드 값이 증가되는 건가요?.. 너무 헷갈려요 ㅠ 제가 혼자 풀어보기로는 ++*p도 주소값이 전위연산되서 M을 가르키고 출력할 줄 알았는데.. ++*p가 아스키코드 값을 증가시키는 거면 *p++는 왜 아스키코드 값을 후위연산으로 증가시키지 않는 건지 .. 실전에 풀 때 안 헷갈릴 정도로 이해하고 싶어요 ㅠ
9:10초대 질문이 있습니다. 다른 수강생 분의 질문과 답변을 봤는데도 이해가 가질 않아서요! printf("%c\n, ++ *p); 이 순간에 포인터 변수 p가 가리키고 있는 것은 msg의 A였고, 전위 연산(++)으로 B가 답이라는 것까지는 알겠습니다. printf("%s\n", msg); 에서 포인터 변수 p와 msg가 별개의 변수라면, msg를 출력했을때, 기존의 EXAM이 정답이라고 생각했습니다. p는 포인터 변수로, msg와 따로 작동하는 것 아닌가요..? p가 바뀐 것이지 배열 자체가 바뀐 것은 아니니까요..! 왜 msg도 EXBM으로, 즉 A->B로 바뀌게 되는건지 궁금합니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 회원가입 프로그램 작성의 File에 저장하는 단계에서 저는 예외 처리하라고 뜹니다. 어떻게 보면 당연한건데 영한님의 IDE에서는 Main에서 예외 처리 오류가 뜨지 않는데 이 부분이 궁금합니다! + 코드를 똑같이 옮겨도 제 프로젝트에선 예외 처리 오류가 뜨네요.