본문 바로가기

분류 전체보기252

포인터 #1 포인터: 주소를 내용으로 가지는 변수 포인터의 구성 요소 1. 내용 : 주소 2. 가리키는 주소에 저장되어 있는 데이터의 형(data type) - 포인터 연산시 주소가 옮겨질 양을 결정하기 위해서 필요함. - 데이터 형이 없는 포인터 : void 포인터 예) int * iptr; int형의 자료를 가르키는 주소이다. 이는 int형이라는 것이 아니다. (중요) 포인터 연산자 &: 변수의 주소를 구하는 연산자 ( address of ) *: 가리키는 주소의 내용을 참조 ( dereference ) / 포인터의 정의에 쓰임 +,-: 현재의 주소에 가리키는 데이터형을 참조하여 주소를 옮겨줌 ->: 구조체의 포인터와 작용해서 구조체의 포인터의 멤버들을 지정하게 함 2006. 4. 6.
구조화 프로그래밍 (Strcutured Programming) 모든 프로그램은 단 세가지의 제어 구조만으로 표현 가능하다라는 것이 증명됨으로써 시작되었다. - 처리, 판단, 반복 처리 : 단순히 위에서 아래로 내려가는 제어 구조 판단 : 진위 값 판단에 의거하여 제어가 옮겨지는 구조 반복 : 조건이 만족할 동안 계속 특정 부분을 반복 수행하는 구조 이는 GOTO문에 의해 먼 곳으로 훌쩍 뛰어버리는 경우가 없이 제어가 인접한 곳으로이동이 되며, 그 의미도 분명해진다는 장점이 있다. 예 : PASCAL, C 2006. 4. 6.
스파게티 코드 제어 구조의 원시적 형태로 인해 GOTO문이 남발하게 된다.그래서, 프로그램의 제어 구조가 마치 스파게티의 면발이 꼬여 있는 것처럼 복잡하다고 해서 이런 프로그램들을 '스파게티 코드'라고 한다. ------------------------------------내 코드도? ㅎㅎ 2006. 4. 6.
최적화 최적화 기법- 좋은 알고리즘의 선택 : 가장 효율적인 것을 선택하는 것이 가장 근본적인 최적화 방법이다.- 함수를 적절히 활용 : 함수를 사용하게 되면, 함수 호출을 위한 절차로 인해 오버헤드가 발생한다, 그러나 컴파일 결과 만들어지는 실행 파일의 크기가 작아진다. 그래서 속도와 크기와의 연관성을 잘 생각해서 함수를 사용해야 한ㄷ.- 실수형을 사용하지 마라 : 왜냐하면 수치계산용 보조프로세서가 없는 경우에는 실수형의 연산은 너무도 더딘 속도이기 때문이다.- 반복문 내를 최대한 간단히 하라. : 반복문 내를 간단히 하려면 함수 호출을 없애고, 필요한 계산은 반복문 밖에서 다 해 놓을 것과, 필요하다면 기계어로 직접 코딩하는 방법도 생각해 볼 수 있다.- 재귀 호출 형태를 사용하지 마라 : 소스의 이해라는 .. 2006. 4. 6.