기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요.

u-boot/board/aesop2440.c 파일을 보면 아래와 같은 함수가 있는데요,

#if 0 의 의미가 궁금합니다. 0이면 실행한다는 것인데, 어떤게 0 이되면 실행되는지가 궁금합니다.

그 동안 if(xxx == 0) 이렇게 된 것만 봐왔거든요.

--------------------------------------------------------
int SD_FS(void)  // Check Partition table
{
        int MBR_exist;
        int i;
        
        MBR_exist=0;
        SD_Read(scratch, 0 , 1);
        //printf("SD Read #0 donen");        
        if(scratch[511]==0xAA && scratch[510]==0x55)
        {

            if ( (scratch[450] == 0x01) || (scratch[450] == 0x04) || (scratch[450] == 0x06) ||
                 (scratch[450] == 0x0B) ||   /* FAT32 Partition */
                 (scratch[450] == 0x0C) ||   /* FAT32 Partition */
                 (scratch[450] == 0x55) )    /* FAT32 Partition */
                 MBR_exist=1;
        }

        if(MBR_exist) printf("(with MBR)nn");
        else printf("(without MBR)nn");
#if 0        
        for (i = 0; i < 512; i++) {
                if (!(i % 16)) printf("n%04x : ", i);
                printf("%02x ", scratch[i]);
        }
        
        for(i=0;i<1024;i++) scratch1[i]=i;
        SD_Write((unsigned char *)scratch1, 300000 , 8);
        
        SD_Read((unsigned char *)scratch1,  300000 , 8);
        
        for(i=0;i<1024;i++)
        {
                if(scratch1[i]!=i) printf("oops %dn",i);
        }
#endif

한영민

2008.01.31 05:11:52
*.14.30.76

#if 0 <- 실행하지 않는다는 뜻입니다.

if 구문을 전처리기형태로 만든 것입니다.
즉 저코드는 컴파일시에 소스에서 제거 되는것입니다. ^^

if (0) { } 으로 써도 되지만, 이렇게 될 경우는 코드가 들어가지만 실행되지는 않죠.

#if 0 은. 컴파일시에 코드도 아에 제거 해줍니다.
#if 0은 #endif 와 함께 쓰입니다.

긴줄을 주석 처리할때, /* */를 쓰거나 저런 형태를 사용합니다.

참고 하십시오.

이세종

2008.01.31 05:26:22
*.191.30.37

감사합니다.^^ 아예 실행하지 않는다는 뜻이군요.
저런뜻이 있었다니 놀랐습니다!ㅎ

고도리

2008.01.31 07:16:47
*.70.26.43

실행하지 않는게 아니라....컴파일시 제거하라는 얘기입니다.

이세종

2008.01.31 07:42:46
*.191.30.37

답변 감사합니다.^^ 주석처럼 컴파일시 제거하라는 것이군요.

이세종

2008.01.31 19:46:04
*.116.152.128

한 가지 더 문의드립니다. 아래의 구문에서

#if 0
#else <- 이 부분은 컴파일되는지, 아니면 제거가 되나요?
#endif

한영민

2008.01.31 20:09:02
*.14.30.76

#else
(내용)
#endif

내용 부분이 컴파일 됩니다. 왜냐하면, else 니까여 ㅋ

이세종

2008.01.31 20:12:26
*.116.152.128

감사합니다. 기초가 안돼있어서 큰일이에요ㅜ.ㅡ
List of Articles
번호 제목 글쓴이 날짜 조회 수
1548 [질문]Freeing init memory 이 후 멈추는 문제 2 [3] 박성우 2008-02-27 909
1547 [re] [질문]Freeing init memory 이 후 멈추는 문제 2 박성우 2008-02-28 2229
1546 i2c 요놈이 저를 괴롭혀요~~ [1] 김승규 2008-02-26 851
1545 I2C read, write 방법 질문입니다. [4] 김유석 2008-02-22 3751
1544 [완료]I2C address 관련 질문입니다. [2] 김유석 2008-02-22 821
1543 [완료] USB 무선랜카드 관련 질문입니다. [6] 신재곤 2008-02-21 807
1542 [완료]uboot에서 2cycle column Address의 NAND인식 [3] 허남수 2008-02-21 723
1541 [해결] lowlevel_init.S(구 memsetup.s)에 질문입니다. [2] 조현철 2008-02-20 884
1540 이솝 커널 2.6.13에서 죽는 현상 [4] 김정훈 2008-02-19 900
1539 [완료] aesop memory map 질문입니다. [3] 조현철 2008-02-19 588
1538 [완료]I2C test app 컴파일 에러 [5] 김유석 2008-02-16 874
1537 [질문]Freeing init memory ~ 이후에 멈추는 현상... [8] 박성우 2008-02-13 1319
1536 i2c 관련 질문 드립니다. [3] 김승규 2008-02-04 1463
1535 2440에서 영상켑쳐 [1] 이학남 2008-02-04 790
1534 CS8900 베이스 어드레스 설정 질문 입니다. [3] 김영수 2008-02-03 1148
1533 [완료] DirectFB에 tslib라이브러리로 h3600터치를 사용하려고합니다... [5] 김창연 2008-02-02 732
1532 [완료][log 추가]NFS Kernel panic: VFS: Unable to moun... [8] 조현철 2008-02-01 1091
1531 Interrup 질문.... [4] 이학남 2008-02-01 671
» [완료] #if 0 #endif 구문의 의미에 대해서.. [7] 이세종 2008-01-31 1412
1529 BANK6 SDRAM 초기화 질문 입니다. [4] 김영수 2008-01-31 599

사용자 로그인