728x90
300x250

[C언어]  포인터 연산

포인터 연산을 편하게 이해하실 수 있는 예제입니다.

#include <stdio.h>

int main()
{

 char *pc, c = 'A';
 int *pi, i = 129;

 /* 포인터 연결 */

 pc = &c;

 pi = &i;
 
 printf("1번 결과------------------\n");

 printf("&C포인터 주소 = %X, *pc포인터 주소 = %X, C 내용 = %d, *PC 내용 = %5c\n", &c, pc, c, *pc);
 printf("&i포인터 주소 = %X, *pi포인터 주소 = %X, i 내용 = %d, *Pi 내용 = %5d\n", &i, pi, i, *pi);

 /* 1번 예제 포인터 값 증가 */
 
 (*pi)++;

 printf("*pi값 증가 : %d, i값 증가 = %d\n", *pi, i);

 /* 2번 예제 포인터 주소 변경 */

 *pc++;

 printf("*pc포인터 주소 변경 : %X, 데이터값 = %d\n", &pc, *pc);

}

 

반응형
728x90
300x250

[C언어] 포인터에 익숙해지는 방법은...

자료형 *변수명1;
자료형 변수명2;

변수명1 = &변수명2;
 

이 정도 형식까지는 쉽게 이해하시는데 더 나아가라고 하면 머리에 한계를 느끼는 부분이 없지않다고 봅니다.

포인터의 경우에는 메모리를 제어해야하는 부분이기에 익숙해지기가 쉽지 않습니다.
물론 포인터에 익숙해지고 싶다면, "백문이불여일타"를 하는 방법도 좋긴하지만 메모리 맵을 직접 작성해보는 것이 좋은 방법이 아닐까 생각합니다.

지금 포인터가 이해가 가지 않으시다면, 임의 그림으로 주소범위를 그려서 낙서장에 적어보도록 하세요...

당장....

반응형
728x90
300x250
[C언어] 포인터 개념의 이해

(별 ****) 어셈블리어 수준에서의 고속 연산과 빠른 처리 성능을 내기 위해서는 무엇보다 메모리에 대한 직접 접근이 필요합니다.
C언어는 데이터가 적재된 메모리 주소를 직접 참조하기 위한 방법으로 포인터(Pointer)를 지원해야합니다. 즉 특정 변수에 정수나 실수, 문자 상수뿐만 아니라 물리적인 메모리 번지도 담아두고 활용할 수 있다는 뜻이기도 하지요.
아래에 포인터의 표준 형식입니다.

data_type * variable_name;

data_type 에는 다음과 같은 종류의 범위가 적용이 됩니다.

int, char, unsigned char, short, short int 등과 같이 일상적으로 사용하는 대부분의 변수들을 사용하실 수가 있습니다.

포인터를 쉽게 이해하실려면 메모리주소를 이해하셔야 합니다.

예) 개똥이네 집주소 1111가 있습니다. 철수와 영희네 집주소는 각각 1112, 1113입니다. 철수네는 CP라는 자료를 가지고 있습니다. 개똥이는 철수네 집의 주소를 사용하고자 합니다. 그래서 *라는 아이를 붙여진 영역을 갖게 되었죠. 여기에서 *라는 녀석은 주소번호를 뜻합니다.
우체국에 가서 '아저씨, 철수네 집이 여행을 가서 그러는데 개똥이네 집에 데이터를 같이써도 되나요'라고 문의를 해서 좋다라고 허락하셨습니다. &라는 주소연산자를 통해 아래와 같이 사용하게 되었습니다.

int *1111, 1112, 1113

1112 = CP;
1113 = 0;

1111 = &1112;

그래서 포인터라는 아이로 철수네는 철수네로 개똥이네는 철수네 데이터를 불러오는 게 성립이 되었습니다.(믿거나 말거나....)

Q1. 실제로 포인터가 대부분의 C 응용프로그램을 제작할 때 필수적으로 쓰인다는데, 과연 어디에 사용이 될까요??

첫번째
I.O라고 불리우는 입축력 하드웨어 장치 드라이버를 만드는 경우를 예를 들어보자면 송수신의 대부분이 메모리를 통해 일어나게 되죠?
흔히 이를 memory-mapped I/O라고 합니다. 이 경우에는 효율적인 메모리 관리가 요하기에 사용히 필수라고 할수 있겠죠...

두번째
수시로 발생하는 많은 양의 데이터를 효과적으로 관리해야 할 프로그램에서는 프로그램이 실행되는 도중(run-time)에 필요한 메모리를 동적으로 할당받아 연결리스트(linked-list) 자료구조를 구성해야 하는 경우가 있다. 이 경우에도 포인터를 사용해야만 보다 빠른 자료의 검색이 가능하고 우수한 성능을 낼 수 있다.

마지막으로...
여러분이 좋아하는 게임을 만드는 경우를 생각해보자...
이 경우에도 게임에 사용되는 각종 배경 이미지와 에니메이션 데이터를 비디오 메모리 공간에 미리 로딩해 두고, 포인터로 직접 접근해야만 끊어짐 없는 부드러운 에니메이션을 표현할 수가 있습니다.

[Note]
자바와 같은 대부분의 프로그래밍 언어는 포인터를 직접적으로 지원하지 않습니다. 즉, 프로그램의 안정성을 위해 개발자가 메모리 주소를 직접 제어하는 것을 막고 있습니다.
반응형

'소프트웨어(SW) > GNU - C, C++' 카테고리의 다른 글

[C언어] 포인터 연산  (0) 2009.05.13
[C언어] 포인터에 익숙해지는 방법은...  (0) 2009.05.13
[GNU - C, C++] Dev C++ 5.0 - IDE  (0) 2009.03.30
연산자와 C언어  (0) 2009.03.30
C언어 입문의 시작  (0) 2009.03.20
728x90
300x250

[PC활용] SSH, Telnet 프로그램 - Putty (한글)

SSH, Telnet 프로그램 Putty 입니다.
많은 분들이 애용하시고 계시는 Putty입니다.
한글판이니 편하게 사용하시기 바랍니다.


1. 첨부(Attachment)

한글 버전(2009-04-20: 구버전): putty.7z, putty0.60.7z

사용가능한 운영체제: 마이크로소프트 윈도우(Microsoft Windows)

영문 버전(2018-08-14: 최신): putty0.70.7z


2. 참고자료(Reference)

1.
https://www.putty.org/
2. https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

 

반응형
728x90
300x250

UTP Cable 제작에 필요한 부품 및 툴

UTP Cable이 상당히 단순한 구조로 되어 있기 때문에 몇몇 부품과 툴만 있다면 일반인들도 쉽게 제작할 수 있습니다.

1. Cable : 회색빛 선을 말하며, 용산 등지에서 10m당 6천원 정도에 구입할 수 있습니다.
2. RJ-45 커넥터 : UTP 커넥터라고도 하며 8핀짜리입니다. 참고로 4핀짜리는 전화기용이며 RJ-11이라고 합니다. 개당 100-200원 정도 합니다.
3. 보호부트 : 케이블과 커넥터가 연결된 부분을 보호하는 것으로 외부 충격을 보호하고, 잘 빠지지 않도록 해 줍니다. 꼭 필요한 부품은 아닙니다.
4. RJ-45 케이블링 툴 : 일명 케이블 집는 기계입니다. RJ-45 잭을 집을 때 사용합니다. 이는 반드시 필요한 툴이며, 가격은 3만원부터 천차만별입니다.
5. 케이블 테스터 : 케이블이 제대로 만들어졌는지 확인하는 기계입니다. 신경써서 만든다면 꼭 필요한 것은 아니지만 시행착오를 줄이는데 많은 도움이 됩니다. 필자는 아직까지 사용해 보지 못했고, 가격 또한 잘 모릅니다. 조금 비쌀듯 싶네요.
반응형
728x90
300x250

UTP Cable의 종류와 용도

앞서 이야기한바와 같이 UTP 케이블은 총 8가닥의 선으로 이루어져 있는데 선의 배열 순서에 따라 2종류로 나뉩니다.

1. Direct Cable
: Straight Cable 이라고도 하는데 네트워크에서 서로 다른 장비(매체)를 연결할때 사용됩니다.
ex. PC와 허브(Hub)를 연결

사용자 삽입 이미지

2. Cross Cable : Crossover Cable 이라고도 하며, 네트워크에서 같은 장비(매체)끼리 연결하는데 사용됩니다.
ex. PC 2대를 서로 연결, 허브와 허브를 연결, PC와 라우터(Router)을 연결

사용자 삽입 이미지

크로스 케이블은 쉽게 말해서 송신과 수신이 서로 엇갈려 연결되도록 제작한 케이블입니다.
송신과 수신이 서로 맞대응 한다면... 다시 말해서 "송신-송신, 수신-수신" 이렇게 물려있다면 어떻게 될까요?
이것은 마치 우리가 전화의 송수화기를 거꾸로 들고 있는 것과 같습니다.
수화기에 대고 말을 하고 송화기를 귀에 대고 있는 꼴이죠. 이렇게 한다면 아무 소리도 듣지 못하고 아무 말도 전달하지 못한다. 이렇기 때문에 두 대 연결 시 크로스 케이블을 쓰는 것입니다.

그렇다면 허브와 PC를 연결할 때는 왜 다이렉트 케이블을 쓸까요? 이 또한 간단합니다.
허브의 구조가 크로스오버를 해주게끔 되어있기 때문입니다. 다시 말해서 허브는 송신과 수신을 엇갈리게 대응해준다는 말입니다.
허브끼리 연결할 때 크로스 케이블을 쓰는 이유는 허브의 구조가 동일하므로 역시 맞대응을 피하기 위해서입니다.
요즘은 허브에 따로 데이지 체인(Daisy Chain)이라는 별개의 포트가 있어서 그냥 다이렉트 케이블을 쓰기도 합니다. 물론 이때는 반드시 한쪽이 일반 포트에 물려야 합니다.
반응형
728x90
300x250

[Networks] UTP Cable의 장단점

사실 UTP 케이블이 네트워크 연결매체로 최적의 선택은 아니지만 여러가지 요인으로 요즘들어 가장 많이 사용되고 있는 실정입니다.

장점

• 컴퓨터의 추가/삭제가 쉽습니다. 허브에 연결만 해 주고 셋팅만 하면 끝~!
• 가격이 저렴하고, 유지 및 관리가 쉽습니다.
• BNC방식과는 달리 PC가 다운이 되어도 다른 네트워크에 지장이 없습니다.
  (물리적으로 스타형의 토폴로지를 갖기 때문입니다.)

단점

• 이름처럼 Unshielded 되어 있기 때문에 외부의 물리적인 충격에 매우 약합니다.
• 가용거리가 100m로 대규모 네트워크를 연결하기에는 무리가 있습니다.
• 한계속도가 100Mbps 이기 때문에 기가비트이더넷 등에서는 사용이 불가능합니다.
반응형
728x90
300x250

UTP Cable이란?

여러분 혹시 UTP 케이블을 모르시는 분은 없으시지는 않겠지요??
컴퓨터 본체 뒷편 NIC(Network Interface Card)에서 벗어나서 허브(Hub) 혹은 공유기와 연결되는 선을 말합니다.

정식명칭은 Unshielded Twisted Pair 케이블(또는 RJ-45)이고 이를 이용한 네트워크 형태를 '10/100BASE-T'라고 합니다.

생김새는 보통 회색으로 이루어져 있으며 보통 전화선과 같으나 약간 더 두껍고 전화선(RJ-11)은 4가닥(2쌍)이지만 8가닥(4쌍)으로 되어 있습니다. 실제 사용하는 선은 2쌍(4가닥)이지만 잡음제거 및 예비용으로 4쌍을 사용한다고 합니다.

• 명칭 : RJ-45
• 속도 : 10/100Mbps
• 규격 : 10Mbps (카테고리3) , 10/100Mbps 겸용 (카테고리5)
• 거리 : 100m 이내
• 비고 : 3대이상 연결시 허브 필요  


 

사용자 삽입 이미지요놈이 UTP 케이블이에요

 

반응형

+ Recent posts