수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

실행파일의 크기가 어떻게 결정 되는건가요?

유진공주

2023.04.11

제가 만든 프로그램을 보면 별거 아닌데도 용량이 700~800kb나 됩니다. 코드 라인수도 400줄? 정도 이고 안될때도 있는데 다른분들과 비교 하면 용량차이가 꽤나 크게 나는거 같아요.
커서 좌표 옮기기, 텍스트 색 바꾸기, 커서 숨김 정도의 api 함수밖에 쓰지 않았는데(저 함수들이 win32 api함수가맞나요? 아직 api공부는 하지 않아서 잘은 모르겠어요 ㅎ) 저 함수가 들어간 다른 분들의 실행파일만 봐도 저보다 용량이 훨씬 작습니다.
제 추축으로는 제가 dev c++로 컴파일을 했는데 이것 때문인가요?vc++은 릴리즈, 디버그 모드(둘의 차이를사이트에서 봤습니다)가 있어서 릴리즈 모드로 컴파일을 해서 용량이 작은건가요?? dev c++은 컴파일하면 디버그 모드로 밖에 되지 않아서 그래서 용량 차이가 저렇게 크게 나는건가요??

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 삐용삐용 2023-04-11

    디버그/릴리즈 차이가 굉장히 크구요, (님의경우는 높은 확률로 릴리즈/디버그 차이라고 봅니다.)

    그외에 const 변수 배열을 굉장히 크게잡거나 하면 역시 용량이 약간 올라갑니다.

    뭐 PC환경에선 이런건 별 의미가 없겠지만,
    모바일쪽에선 삼각함수 테이블 이런것만 넣어도 용량이 막 몇k씩 불어나니까요 ㅋ
    역탄도따윌 테이블화해버리면 감당안되는 용량 ㅋㅋㅋㅋ

  • 풀큰 2023-04-11

    좋은 답변은 감사합니다
    그런데 왜? 라는 의문을 가지고 그 의문을 풀려는게 잘 못 된건가요? 이런거에 목숨 안걸고 전 그냥 제 의문에 해답을 주기 위해 여기에 질문한 것 뿐입니다

  • 찬슬기 2023-04-11

    프로그램의 크기를 최소한으로 줄이고 싶으시다면 다음과 같은 선택을 하면 됩니다. 문제는 다들 사이드이펙트가 있습니다;;

    1.정적 링크를 피하세요. 대신 .so, .dll파일에 대한 의존성을 가지게 됩니다.
    2.릴리즈 모드로 컴파일 하세요, 컴파일러가 릴리즈 모드의 최적화 옵션에 따라 최적화를 시도합니다.
    대신 코드에 따라 몇몇 의도된 동작과 다른 동작을 하는 프로그램을 볼수도 있습니다.
    3.인라인을 쓰지 마세요, 그리고 컴파일러에게 인라인을 하지 않도

  • 은아 2023-04-11

    1.표준라이브러리 와 그것외에 엮여 있는 정적 링크 라이브러리가 있다면 그것의 용량도 통째로 계산됩니다.
    2.디버그 옵션에 따라 여러가지 부수적인 정보가 어셈블리 차원에서 삽입됩니다. (gcc쓰시면 디버그 옵션인 -g를 줫을때와 안줫을때의 어셈블리 결과물을 확인해 보시면 바로 확인 가능하실 겁니다.)
    3.코드에 따라서 인라이닝 혹은 프리컴파일러에 의해 ^c-^v가 얼마나 되었냐에 따라 코드의 절대 크기 자체가 변할수 있습니다.
    4.컴파일러의 최적화 셋팅

  • 슬우 2023-04-11

    제가 보통 프로젝트로 하지 않고 그냥 소스파일로만 하는데 그러면 방법이 없는건가요?? 제가 프로젝트로 하는건 아직 친하지 않아서;; 해야 하는건 아는데 안하고 있거든요 ㅎ 또 제가 만드는 것들이 그렇게 큰 것도 아니고 해서 그냥 소스파일로만 만들고 있습니다 ㅋ

  • 도래 2023-04-11

    dev c++도 프로젝트 옵션을 통해 디버그 모드 해제 할 수 있습니다.

  • 조은 2023-04-11

    디버깅 모드로 컴파일하시면 용량이 상당히 큽니다;;

번호 제 목 글쓴이 날짜
2694754 ShowWindow 함수를 이용하려 하는데 질문있습니다. (2) 파도 2025-05-14
2694731 리눅스 커널의 시작점 질문 미르 2025-05-13
2694702 이거 뭐가문제인가요 코드수정좀 (3) 맑은 2025-05-13
2694675 C언어 후위표기를 중위표기로 앨런 2025-05-13
2694646 안녕하세요 파일 합치기 함수! (1) 연블루 2025-05-13
2694618 잘몰라서 설명부탁드립니다. scanf 관련 (3) 파라 2025-05-12
2694590 이 코드가 뭐하는 코드일까요? #2 빵순 2025-05-12
2694559 동적할당으로 배열(2차원열)을 만드는데 있어 그걸 함수화시키는데... (1) 늘솔길 2025-05-12
2694532 네트워크에 관하여... (4) 황소자리 2025-05-12
2694503 프로그램 연산 후 바로 종료되는 현상 (6) Judicious 2025-05-11
2694450 while문질문입니다. (1) 허리품 2025-05-11
2694420 C언어 질문할게요(유니코드,자료형,버퍼,캐스트연산자) 은새 2025-05-11
2694370 내일까진데 함수호출 제발 도와주세요!!!!!!!!!11 들찬 2025-05-10
2694339 putchar()의 괄호 안에 int c=10;로 전에 선언된 c를 넣으면 안되는 이유에서 제가 생각한 것이 그 이유가 되는지 확인하고 싶습니다. (3) 미르 2025-05-10
2694316 이 코드 어디가 잘못되었는지 고수분들 ㅠㅠ (2) 나빛 2025-05-10
2694285 언어 공부하는 과정 좀 추천해주세요! (1) 아빠몬 2025-05-09
2694258 카운터.. 질문입니다. (4) 하늘빛눈망울 2025-05-09
2694229 단순한 질문이요 (8) 여름 2025-05-09
2694202 용돈을 가지고 할 수 있는 일을 여러가지로 출력하는 방법 좀 알려주세요! (2) 미나 2025-05-09
2694145 화면깜빡임을 없애고 싶은데요... (1) 어서와 2025-05-08
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com