
printf 자료형을 잘못 쓰면 첫번째의 정상 값이 2번째 처럼 값이 줄여진 상태로 출력된다. 그이유는 아래 표의 표현범위의 제한사항으로 발생된 버그이다. unsigned __int64 일 경우 즉, unsgined long long 이면 printf(" Value : %llu]\n",Value); -> %llu (signed) __int64 일 경우 즉, long long 이면 printf(" Value : %lld]\n",Value); -> %lld 이때 l은 대문자 아이가 아닌 엘이다. long -> l 축약된 형태이다 long long l l unsigned long long llu

앞으로 Visual Studio 디버깅 브레이크 포인트 사례들을 차곡차곡 쌓아가려고 한다. 최근에 발견했던 문제는 솔루션내에 여러개의 프로젝트를 구성한 개발을 하고 있었다. 그런데, 의도와 다른 소스에서 중단점이 찍히는 것이였다. 당시 소스를 정리하려는 목적으로 다른 프로젝트 동일네임 소스를 구조변경과 함께 수정하고 있었는데, 그게 원인이 되었다. 둘을 잘못 구분해서 생긴 실수였는데 *동일 네임cpp를 프로젝트 네임을 기준으로 A,B소스로 구분하겠다. 이때, 특이사항은 내가 A의 소스를 중단점을 찍었고 실제 프로그램은 B의 소스로 진행되고 있었다. 엉뚱한곳으로 중단점이 찍혔던 이유는 컴파일러는 동일한 cpp로 인식하여 맵핑을 했다는것이다. 따라서, Visual Studio 디버깅 브레이크 포인트 사용시 ..

소스 def in(email): return email.split("@")[1].split(".")[0] domain(df.loc[0]["email"]) email 정보에 oksk2002kr@naver.com 입력되었다면 파이썬 split 함수는 특정 문자를 기준으로 나눠주는 함수이다. split("@")[1] 에 의미는 쪼개진 2번째 인덱스 정보를 요구하는 것이다. 조금 더 쉽게 그림으로 풀어 설명해보도록 하겠다. 함수의 함수 구조가 익숙하지 않은분들은 혼동이 되었을 것이다. email.split("@")[1].split(".")[0] 의미는 (email.split("@")[1]).split(".")[0] 와도 같다. "@"가 처리된 결과를 바탕으로 "." 처리가 이어지게 된다.