Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2038] Re:char cvar[99] 를 \0으로 모두 초기화 하고 싶습니다. -- 추가답변.
pd [kmshts] 1786 읽음    2003-03-03 00:08
char cvar[99];
memset()를 쓸라면 인클루드를 하나 호출해야할껍니다.
음.. 저는 약간의 성능면에서 생각을 했습니다.

우선 memset()라는것 자체는 함수이고 그것을 사용하기위해서는 일반적인 인클루드를
이용할경우에 그 헤더파일이 전부 플그램에 삽입됩니다.
그렇게될경우 컴파일시 파일의 크기가 필요이상으로 커집니다.
(인클루드는 파일을 링크시키는것이 아니라. 파일을 포함시키는거니까영.)

물론 만들수도있졍.
그러나 만들게되면 스택메모리에 함수를 호출함에있어서 상당부분 성능이 떨어집니다.
함수를 호출하고 리턴하는게 메모리상으로는 큰일입니다.
확키웠다 초기화하고 확줄이구영.. ㅎㅎㅎㅎ

그래서 저는 이런 성능문제에대해 고려해보고 추가답변드립니다.

1. char cvar[99]; 이것을 전역변수로 설정
일반적으로 전역변수를 쓰면 모든 메모리는 초기화됩니다.
전역변수라함은 함수내부에 변수를 선언하는게 아니라.함수밖에 변수를 선언하졍.
(이하 전역변수에대해 알아보세영)
이렇게 될경우 메모리상에 플그램이 끝날때까지 그변수는 할당되어 메모리 낭비는될지모르나
프로그램은 군살이 없졍. 또한 함수호출이 없기때문에 속도도 그만큼 향상됩니다.


2. char cvar[99] = {'\0'};
표현이 정확한지 모르겠습니다. 여튼 이렇게 하나만 해주면 모든 메모리 영역이 써준대로
마스킹(도배ㅡ.ㅡ;;) 이 되졍..
이방법은 선언해줄게 main()안에 들어갈거라면 좋은 성능을 발휘합니다.
거의 static의 기능처럼 쓰기도 뭐하고 안쓰기도 뭐할때 그럴때 많이씁니다.


골라서쓰세영. 아무거나



허걱 님이 쓰신 글 :
: char cvar[99];
:
: 라는 char형 배열을 '\0' 널값으로 모두 초기화 하고 싶습니다.
:
:
: 어찌 해야하나요.
:
:
: 휴.. 도저히 모르겠습니다...
:
:

+ -

관련 글 리스트
2033 char cvar[99] 를 \0으로 모두 초기화 하고 싶습니다. 허걱 1265 2003/02/28
2038     Re:char cvar[99] 를 \0으로 모두 초기화 하고 싶습니다. -- 추가답변. pd 1786 2003/03/03
2034     Re:char cvar[99] 를 \0으로 모두 초기화 하고 싶습니다. 김백일.cedar 1458 2003/02/28
2035         Re:Re:char cvar[99] 를 \0으로 모두 초기화 하고 싶습니다. 허걱 1574 2003/02/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.