프로그래밍 39

비주얼 스튜디오 어셈블리코드 확인방법

C나 C++ 언어에서의 실행파일 생성단계 중 컴파일 단계에서는 소스파일이 컴파일을 거쳐 어셈블리가 됩니다. 에러들이 발생하고, 해결방안에 대한 힌트를 찾을 때 어셈블리 코드에서 직접 확인가능한 경우가 있다. 도구 -> 옵션 -> 디버깅 -> 주소 수준 디버깅 사용 체크 분기점 설정 -> 디버그모드 -> 디버그 -> 창 -> 디스어셈블리

[C++]rand, sland 함수

랜덤한 수 : 게임에서 다양한 순간에 난수를 받아 활용해야한다. rand 함수는 특정 시드값에서 난수를 받아온다. 참고하는 씨드표가 따로 있다. 즉, rand(1) 은 계속 41만 출력된다. 아래와 같이 랜드함수는 결과로 정수 int형을 반환한다. 전달인자가 아무거도 없는 함수인다. ( rand(void) ) 0 ~ 32367 (2바이트의 최대 표현범위) 중 하나의 숫자가 반환된다. rand함수는 사용횟수마다 다른값이 나오는데, 다시 실행하면 같은 값을 반환한다. int iRand = rand(); ****for문 안에서 돌릴 필요없다. 전역변수로 한번만 선언해줘도 시간은 돌아가기 때문이다.**** rand함수에서의 시드값을 바꿔주기 위해 sland 함수가 사용된다. 리턴타입은 없고 전달인자로 정수형 씨..

프로그래밍/C++ 2021.09.11

for문(반복문), size_t

아래의 순서대로 코드가 실행된다. for ( 1.초기화식 ; 2.조건식 ; 4.증감식 ) { 3.코드블록 } for문은 초기화, 조건식, 증감이 한번에 들어갈 수 있다. 따라서 조건이 하나였던 while보다 광범위하게 쓰일 수 있다. 초기화식을 초기에 한번만 실행이 된다. 다시 초기화가 되지않는다. 초기화식은 따로 빼서 전역변수로 따로 선언해도 된다. 3가지 식을 모두 빼도 상관이 없지만 세미콜론은 꼭 2개를 남겨놔야한다. for문 안의 3가지 식을 밖으로 빼보았다. 조건식으로 for문을 빠져나올 수 있도록 break를 꼭 걸어줘야 한다. 조건식은 false를 반환하면 함수를 빠져나온다. 조건이나 초기화 증감을 중첩해서 사용할 수 있다.-> 콤마로 구분 한다. 이중 for문 반복문 중첩사용 가능하다. 반..

프로그래밍/C++ 2021.09.10

분기문 (if, switch, goto, while)

goto 원하는 코드 위치로 간다. 논리란 없다. 따라서 사용을 제한하기도 한다. 잘못하면 코드가 꼬여버리기 때문이다. goto A구간; (A구간 의 명은 변경 가능 하고, 세미콜론과 함께 쓰인다.) A구간: (돌아갈 지점에서는 콜론이 쓰인다.) if if (/*조건식*/) { 코드블록 : 조건식이 참일 경우에만 실행된다. 조건식이 거짓이라면 여긴 건너 뛰겠다. } 1. 조건식이 참일 경우에만 코드블럭안의 조건을 수행한다. 조건식이 거짓일 경우 그냥 건너 뛴다. 2. if (10 > 20); if문옆에는 세미콜론을 붙이지 않는다. 3. 만약 if문의 중괄호 안의 내용이 한줄이라면 중괄호 생략 가능하다 4. 중괄호를 생략했다고 하면 그다음에 오는 문장 한줄에 대해서만 if문으로 간주된다. 5. else 의..

프로그래밍/C++ 2021.09.10

형변환

묵시적 형변환 연산 과정에서 묵시적 형변환이 형변환 우선순위에 의해 일어난다. int A = 3.14f; 의 경우 묵시적 형변환 변환 우선순위 때문에 그럼 long double (8바이트) > double(8바이트) > float(4바이트) > long long(8바이트) > long , int(4바이트) > short(2바이트) > char (1바이트) 명시적 형변환 형변환을 명시하는 것. Aver = float(iTotal / 3); Aver = iTotal / 3.f; 1.Aver = float(iTotal) / 3 2.Aver = float(iTotal / 3) 위 코드처럼 형변환 하는 방식을 C++에서는 C 스타일 형변환 혹은 오래된 형변환 이라고 부른다. c++에는 형변환해주는 연산자가 4개가..

프로그래밍/C++ 2021.09.10