달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

저는 Visual Studio 2008 를 사용하지만은.

 

Visual Studio 2010 와 별 다른 차이가 없을거에요. 

 

 단축키

 설명

 Ctrl + F

 현재 파일에서 특정 문자를 찾아줘요.

 Ctrl + Shift + F

 파일에서 특정 문자를 찾아줘요.

 Ctrl + Space

함수이름을 치는도중 함수 이름을 완성시켜줘요.(Namespace)

 Ctrl + Shift + Space

 커서가 위치한 함수가 필요한 파라미터를 보여줘요.(Parameter)

 Home

 커서가 위치한 줄의 맨 앞으로 가요.

 End

 커서가 위치한 줄의 끝으로 가요.

 Shift + Home

 커서가 위치한 곳 부터 그 줄맨 앞까지 블록지정해요

 Shift + End

 커서가 위치한 곳 부터 그 줄 끝까지 블록지정 해요.

 Shift + 화살표(상하좌우)

 화살표를 움직이면서 블록지정을 해요.

 드래그 + Alt

현재 커서 위치부터 움직인 커서 위치까지 블록지정 해요.

 Ctrl + 화살표(좌우)

 구분단위(한 단어)로 커서를 이동해요.

 Ctrl + Shift + 화살표(좌우)

 구분단위(한 단어)로 블록을 지정해요.

 Ctrl + M + L

 전체 소스의 함수를 + 와 - 버튼으로 만들어줘요.

 Ctrl + M + M

 커서가 위치한 속한 함수를 + 와 - 버튼으로 만들어줘요.

 Shift + Delete

 커서가 위치한 줄을 삭제를 해요. 

 Ctrl + L

 커서가 위치한 줄을 삭제를 해요.

 Ctrl + K + C

 선택 영역에 주석을 씌워요.

 Ctrl + K + U

 선택 영역에 주석을 없애요.

 Alt + F8

 블록 지정된 영역의 탭을 정리해줘요.

 Ctrl + G

 줄 번호를 찾아줘요.

 Ctrl + Shift + N

새로운 프로젝트를 만들어요. 

Ctrl + Shift + A 

 새 항목을 만들어요.

Ctrl + A

소스 전체를 블록지정 해요. 

 Ctrl + End

전체 소스의 맽 끝으로 커서가 이동해요. 

Ctrl + Home 

전체 소스의 맨 처음으로 커서가 이동해요. 

Ctrl + Shift + Home 

현재 커서부터 전체 소스의 맨 처음까지 블록지정 해줘요. 

 Ctrl + Shift + End

현재 커서부터 전체 소스의 맨 끝까지 블록지정 해줘요. 

 F7

 빌딩을 해요.

 Ctrl + Alt + F7

 전체 다시 빌딩을 해요.

 F5

 빌딩 후 실행해요.

 Ctrl + F5

 빌딩 없이 실행해요.

 F9

 브레이크 포인트를 설정해요.

 Ctrl + Shift + F9

 설정된 브레이크 포인트를 모두 제거해요.

F10

 디버깅중 줄단위로 실행해요.

 F11

 디버깅중 코드 단위로 실행해요.

 F12

 커서가 위치한 함수&변수가 정의되있는 곳으로 이동해요.

 Ctrl + '-'키

 커서가 이전위치로 이동해요.

 Ctrl + Shift + '-'키

 커서가 다음 위치로 이동해요.

 Ctrl + F2

 커서가 위치한 줄에 책갈피를 설정해요.

 F2

 다음 설정된 책갈피로 커서가 이동 해요.

 Ctrl + Shift + F2

 설정된 책갈피 모두 제거 해요.

 Ctrl + F10

 커서 위치까지 실행을 해요.



 

 

 

하.... 많군요..........

 

저도 여기있는 단축키를 다 쓰는게 아니에요.

 

솔직히 포스팅 하면서 알게된 단축키가 더 많더군요! (몰라도 지장 없잔...)

 

익숙해 지려면 오래 걸리겠군요!

출처 : http://blog.naver.com/chhh92?Redirect=Log&logNo=70118120659
Posted by 위너즈
|
리틀 엔디안과 빅 엔디안의 분류를 어찌보면 시스템 프로그래밍으로 놔야할것같긴한데... 이건 C언어 소스로 표현하니 알고리즘이라 판단하여 알고리즘 C에 분류를 했습니다.
 
 
기본적으로 컴퓨터는 읽기 쓰기를 1바이트 단위로 처리하구요. 데이터를 스택에 넣을때 어떤 순서대로 넣는냐에따라 컴퓨터 종류가 달라요. 이것을 바이트오더(바이트 순서) 라고해요.
 
 
 
4바이트 짜리 정수(int) 0x12345678 를 스택에 넣을때 0x78를 먼저 넣는다면 리틀엔디안이 되는거고 반대로 0x12를 먼저 넣는다면 빅엔디안이 되는거에요.
 
 
둘이 차이점은 계산할때와 비교할때 확실이 눈에 띄어요.
 
빅엔디안으로 두 숫자를 비교한다고 생각해보세요.
보통 숫자 비교는 제일 큰자리에있는 숫자, 즉 왼쪽부터 비교하면 비교하는데 속도가 빨라요.
 
빅엔디안은 숫자를 앞에서부터 차곡차곡 스택에 집어 넣으니까요.
 
비교를 만약 리틀엔디안으로 하게된다면 리틀엔디안은 숫자 뒤에서부터 스택에 집어 넣기 때문이 빅엔디안보다 속도가 느릴수밖에 없지요.
 
그렇지만 숫자 계산을 한다면요.
 
리틀엔디안이 빅엔디안보다 속도가 빨라요.
 
두 숫자를 계산을 할 경우 가장 낮은 자리수에 있는 숫자를 계산을 해보고서 자리 올림수가 있는지 없는지 판단을 하고서 자리올림수와 다음 숫자를 계산을 하죠.
 
그렇기때문에 두 방식중 어느게 좋다 라고 확정 지을순 없어요.
 
빅엔디안은 UNIX 에서 사용하는 RISC 프로세서에서 사용 하는 바이트 오더구요. 동시에 소켓 프로그래밍에서 중요한 네트워크 바이트 오더 에요.
 
리틀엔디안은 Intel 계열의 프로세서에서 사용하는 바이트 오더에요.
 


[그림 1] Endian
 
소스는 포인터를 사용했습니다.
 
5번째 줄에 4바이트 정수형변수 a에다가 0x12345678을 넣고서
1바이트 정수형포인터변수 b에다가 a의 시작 주소를 주었어요.
 
a의 시작 주소니까 처음에 들어간 숫자가 있겟죠?
 
8번째 줄과 13번째 줄은  (*b)에 0x78인지 0x12인지 비교후 printf로 문자열을 찍는 간단한 프로그램이에요.
 
[그림 2] Endian_cmd
 
저는 리틀 엔디안이라네요.
 
리틀 엔디안과 빅 엔디안을 요약정리를 하면요.
 

빅 엔디안

리틀 엔디안 

Unix 의 RISC계열의 프로세서가 사용하는 바이트 오더링

네트워크에서 사용하는 바이트 오더링

앞에서부터 스택에 PUSH

비교연산에서 리틀 엔디안보다 속도가 빠름

Intel 계열의 프로세서가 사용하는 바이트 오더링

 

뒤에서부터 스택에 PUSH

계산연산에서 빅 엔디안보다 속도가 빠름

  

단순한 프로그래밍 할땐 빅 엔디안과 리틀 엔디안을 구분하면서할 필요가 없기에 크게 신경 쓸 필요는 없지만, 알아두면 안좋을것 없으니까요. ㅋ

출처 : http://blog.naver.com/chhh92?Redirect=Log&logNo=70118120659

Posted by 위너즈
|

Visual C++ 로 작성된 코드가 vs6, vs2003, vs2005, vs2008, vs2010 에서
error나 warning 없이 컴파일 되게 하려면 각기 다른 코드로 작성해야 하는데 
이것을 구분하기 위해서 따로 전처리기 변수를 정의할 필요 없이 _MSC_VER를 사용하면 된다.

_MSC_VER 로 Visual Studio 컴파일러 버전을 알 수 있으며
_MSC_VER 이 정의되어있지 않다면 Unix 계열의 C++로 판단할 수 있을 것 같다.

_MSC_VER
 _MSC_VER 값  컴파일러 버전  Visual Studio 버전
 ( _MSC_VER => 1000 )  4.0  
 ( _MSC_VER => 1100 )  5.0  
 ( _MSC_VER => 1200 )  6.0  vs6
 ( _MSC_VER => 1310 )  7.1  vs2003
 ( _MSC_VER => 1400 )  8.0  vs2005
 ( _MSC_VER => 1500 )  9.0  vs2008
 ( _MSC_VER => 1600 )  10.0  vs2010


사용예를 들자면 vs6에는 _tfopsn_s() 가 없어서 fopen()를 사용하면 vs2008에서 컴파일시 warning이 발생한다.
이때, _MSC_VER 를 사용해 컴파일러마다 다른 코드를 사용하게끔 만들 수 있다. 
 
#if defined( _MSC_VER )
    #if( _MSC_VER < 1310)    // vs6
        pFile = fopen(szFile, "r");
        if( pFile == NULL )
        {
            return false;
        }
        //
 
    #elif( _MSC_VER < 1400)  // vs2003
        pFile = _tfopen(szFile, _T("r"));
        if( pFile == NULL )
        {
            return false;
        }
        //
    #else                   // vs2005 이상
        errno_t eno = _tfopen_s(&pFile, szFile, _T("r"));
        if( pFile == NULL || eno != 0 )
        {
            return false;
        }
    #endif
#endif
컴파일러 버전별로 Static Library를 배포해야 할 경우 이런 코드가 나올 수 밖에 없다.
C++ Open Source 라이브러리 코드도 이런식으로 사용하기는 마찬가지.. 

출처 : http://yamoe.tistory.com/
Posted by 위너즈
|