통합검색
· 마을서비스란?  · 포럼마을  · 일반마을  · 테마마을  · 마을랭킹  · 활동왕
· 덱스퍼트란?  · TECBOX   · PRSBOX   · 이용안내  
· DEXT제품군  · 솔루션베이  · S/W & ESD 컴포넌트
· 프로그램베이
· LiveSeminar  · LiveConference
Visual C++ 포럼마을 입니다.
  마을등급 Visual C++   이 마을은 포럼마을 입니다이 마을은 자유가입제 마을 입니다 마을소개 페이지로 이동 전입신청
마을촌장촌장 나성훈 주민 34043 since 2006-12-29
우리마을 공지사항
질문&답변
강좌&팁
자유게시판
자료실
앨범
개인게시판
마을 게시판
등록된 마을 게시판이
없습니다.
랑데브 게시판
칼럼 게시판
개발자 고충상담
Dev Talk
자유토론방
벼룩시장
재나미 우스개
구인/프로젝트 정보
사람인 채용 게시판
  고객지원 게시판
마이 데브피아
 나의 e-Money 내역
 활동왕 My Page
 스크랩한 게시글보기
 쪽지관리
 주소록관리

 강좌&팁
 처리 없는. 조건문 연산  | VC++ 일반 2020-02-14 오후 7:43:42
 shintx  shintx님께 메시지 보내기shintx님을 내 주소록에 추가합니다.shintx님의 개인게시판 가기 번호: 8895 추천:0  / 읽음:351

 

// 구구단 룩업 테이블 ㅡ 처리 없는. 조건문 연산

 

http://codepad.org/lLsxiPhd

 

d = a * c; 는 연산 '하는거죠. ㅇ_ㅇ?

 

이거는 연산 ' 안하는거 같네요. ㅇ_ㅇ??

if(a==5 && b=='*' && c==9)

{

    d=45;

}

 


#include <stdio.h>

#include <stdlib.h>

 

int  main()

{

char a=5;

char b='*';

char c=9;

char d=0;

 

int i=0;

int j=0;

for(i=0; i<10000000; i++)

{

    for(j=0; j<10000000; j++)

    {

        if(a==5 && b=='*' && c==9)

        {

            d=45;

        }

    }

}

printf("%d\n", d);

  return 0;

}


Output:

45


 

//

main() 

MAIN BOARD 메인 보드 ㅇ_ㅇ??

 

 

// gdb 온라인 테스트 결과

b 줄번호                  //  줄번호 break

debug 버튼 실행

layout asm           //어셈블리로 보기

 

https://www.onlinegdb.com/

 

   0x40054a <main+20>      movb   $0x0,-0x9(%rbp)                                                                  
   0x40054e <main+24>      movl   $0x0,-0x8(%rbp)                                                                  
   0x400555 <main+31>      movl   $0x0,-0x4(%rbp)                                                                  
   0x40055c <main+38>      mov    $0x400614,%edi                                                                   
   0x400561 <main+43>      callq  0x400410 <puts@plt>                                                              
B+>0x400566 <main+48>      movzbl -0xc(%rbp),%eax                                                                  
   0x40056a <main+52>      movzbl -0xa(%rbp),%edx                                                                  
   0x40056e <main+56>      imul   %edx,%eax                                                                        
   0x400571 <main+59>      mov    %al,-0x9(%rbp)                                                                   
   0x400574 <main+62>      mov    $0x40061a,%edi                                                                   
   0x400579 <main+67>      callq  0x400410 <puts@plt>                                                              
   0x40057e <main+72>      mov    $0x0,%eax                                                                        
   0x400583 <main+77>      leaveq                                                                                  
   └───────────────────────────────────────────────────────────────────────────┘                                     
child process 6437 In: main                             Line: 28   PC: 0x400566                                      
                                                                              

 

 

 

 

   0x400576 <main+64>              jne    0x40057c <main+70>                                                       
B+>0x400578 <main+66>              movb   $0x2d,-0x9(%rbp)                                                         
   0x40057c <main+70>              mov    $0x40061a,%edi                                                           
   0x400581 <main+75>              callq  0x400410 <puts@plt>                                                      
   0x400586 <main+80>              mov    $0x0,%eax                                                                
   0x40058b <main+85>              leaveq                                                                          
   0x40058c <main+86>              retq                                                                            
   0x40058d                        nopl   (%rax)                                                                   
   0x400590 <__libc_csu_init>      push   %r15                                                                     
   └───────────────────────────────────────────────────────────────────────────┘                                     
child process 1146 In: main                             Line: 30   PC: 0x400578                                      
                                        


 

 

 

// 반복문'은. 컴파일 옵션 영향이 아주 큽니다.

코드 패드 :  1초 실행

DevC++   : 아주 오래 처리 인경우.  아래 코드를 적용하면. 1초 실행 됩니다. ㅇ_ㅇ;;  gcc.exe  -o2 컴파일 옵션

 

#pragma GCC push_options

#pragma GCC optimize ("O2")

 

 //Write your code

 

#pragma GCC pop_options

 

 

//

gcc compiler optimaze - Bing
http://www.bing.com/search?q=gcc+compiler+optimaze&cvid=771f63f86ebd4397ad52f84588cc8b31&FORM=ANNTA1&PC=U531

Using the GNU Compiler Collection (GCC): Optimize Options
http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

GCC 최적화 옵션 -O1 -O2 -O3 | KLDP
http://kldp.org/node/81759

[gcc] 특정 코드에 최적화 속성 사용하기
http://sonseungha.tistory.com/522

gcc -o / -O option flags (output / optimization)
http://www.rapidtables.com/code/linux/gcc/gcc-o.html

Optimizing code-size with the GNU gcc compiler for STM32 and other ARM Cortex-M targets
http://blog.atollic.com/optimizing-code-size-with-the-gnu-gcc-compiler-for-stm32-and-other-arm-cortex-m-targets

c++ - gcc compiler option optimize - 해결 된 문제
http://code.i-harness.com/ko-kr/q/2692cdb

linux - What does '#pragma GCC optimize ("O3")' mean? - Stack Overflow
http://stackoverflow.com/questions/47222127/what-does-pragma-gcc-optimize-o3-mean

 

 

 

 

 

[코멘트] 좋음
2020-02-14 20:55
 crowback__  crowback__님께 메시지 보내기crowback__님을 내 주소록에 추가합니다.crowback__님의 개인게시판 가기 
msc, gcc 든 현재 대부분의 c 컴파일러는 옵티마이저 키고 연산하면 그냥 0 ms 입니다.
컴파일러 옵티마이저에 대해 찾아보세요.
저장 취소
[코멘트] 좋음
2020-02-14 21:07
 shintx  shintx님께 메시지 보내기shintx님을 내 주소록에 추가합니다.shintx님의 개인게시판 가기 
방금 찾았습니다. ㅇ_ㅇ;;
저장 취소
코멘트쓰기
  좋음   놀람   궁금   화남   슬픔   최고   침묵   시무룩   부끄럼   난감
* 코멘트는 500자 이내(띄어쓰기 포함)로 적어주세요.
목록 보기   지금 보고 계시는 글을 회원님의 my Mblog >> 스크랩에 넣어두고 다음에 바로 보실 수 있습니다.  
회사소개  |   개인정보취급방침  |  제휴문의  |   광고문의  |   E-Mail 무단수집거부  |   고객지원  |   이용안내  |   세금계산서
사업자등록번호 안내: 220-81-90008 / 통신판매업신고번호 제 2017-서울구로-0055호 / 대표: 홍영준, 서민호
08390, 서울시 구로구 디지털로32길 30, 1211호 / TEL. 02_6719_6200 / FAX. 02-6499-1910
Copyright ⓒ (주) 데브피아. All rights reserved.