【C】 12_주석 부호

9040 단어 c
인 스 턴 스 분석: 초기 설명 규칙
#include 

int main()
{
    int /*...*/i;
    
    char* s = "abcdefgh    //hijklm";
    
    // Is it a \
    valid comment?
    
    in/*...*/t i;
    
    return 0;
}
  :
test.c: In function ‘main’:
test.c:12: error: ‘in’ undeclared (first use in this function)
test.c:12: error: (Each undeclared identifier is reported only once
test.c:12: error: for each function it appears in.)
test.c:12: error: expected ‘;’ before ‘t’

주석 규칙
  • 컴 파일 러 는 컴 파일 과정 에서 전체 주석 을 빈 칸 으로 대체 합 니 다
  • 문자열 글자 의 / / 와 /... /주석 기호 가 아 닙 니 다
  • /... / 형 주석 은 끼 워 넣 을 수 없습니다
  • 흥미 로 운 문제
  • y = x / * p 가 무슨 뜻 이 라 고 생각 하 세 요?
  •     :  x    *p        y。
    
       :   /*          ,  /*            ,   */     。
    
          ,             。  ,           。
    

    바보
    void code()
    {
        r = n / 2;                    // r   n    
        while( ( r - n / r) <= t )    //   ,   r - n / r     t
        {
        }
        
        r = r + n * t;                //     r     
        
        n++;                          //    n    1
        
        return 0;
    }

    설명 은 프로그램의 실행 과정 을 설명 하 는 것 이 아니 라 원인 과 의 도 를 설명 하 는 데 사 용 됩 니 다!
    현혹 형 주석
    void code()
    {
        init();
        
        //... ...
        //... ...
        
        sad = 0x723;  // R.I.P.L.V.B
        
        // ... ...
        /// ...
        finalize();
        
        return 0;
    }
    0x723 = 1827 ,      

    주석 을 쓰 는 것 은 기분 을 말 리 는 것 이 아니 라 반드시 이의 성 이 없어 야 하 며 코드 를 제시 하 는 역할 을 하여 줄 임 말 을 사용 하지 않도록 해 야 합 니 다!
    흔 들 림 형 주석
    int main()
    {
        // ... ...
        // ... ...
        
        // Bob 07/24/1995
        /*            
         *             contains   
         *                           
         *              ,       
         */
         if( contains(s, "error") )
         {
             exit(1);
         }
         
         return 0;
    }

    주석 은 코드 에 대한 힌트 입 니 다. 비대 함 과 손님 이 주인 을 빼 앗 지 않도록 하 세 요!
    코믹 주석
    //                       .::::.
    //                     .::::::::.
    //                    :::::::::::
    //                 ..:::::::::::'
    //              '::::::::::::'
    //                .::::::::::
    //           '::::::::::::::..
    //                ..::::::::::::.
    //              ``::::::::::::::::
    //               ::::``:::::::::'        .:::.
    //              ::::'   ':::::'       .::::::::.
    //            .::::'      ::::     .:::::::'::::.
    //           .:::'       :::::  .:::::::::' ':::::.
    //          .::'        :::::.:::::::::'      ':::::.
    //         .::'         ::::::::::::::'         ``::::.
    //     ...:::           ::::::::::::'              ``::.
    //    ```` ':.          ':::::::::'                  ::::..
    //                       '.:::::'                    ':'````..

    실례 분석: 예 쁜 코드 주석
    /*
      ========================================================================
    
      FILE:  Form.c
      
      SERVICES:  
    
      GENERAL DESCRIPTION: Concrete implementation of RootForm and base IForm
      methods
    
      ========================================================================
      ========================================================================
        
                   Copyright ?1999-2005 QUALCOMM Incorporated 
                         All Rights Reserved.
                       QUALCOMM Proprietary/GTDR
        
      ========================================================================
      ========================================================================
    */
    
    
    /*==================================================================================
                             XXXXXXX Confidential Proprietary
                       (c) Copyright XXXXXXX - All Rights Reserved
    
    Revision History:
                             Modification
      Author                     Date        CR Number      Major Changes
    ----------------------   ------------   ------------   ----------------------------
    Daniel Rossler            01/18/2007     LIBkk94550    Add check for NULL pointers
                                                           in order to avoid a panic
    ==================================================================================*/
    // updates the rootform with the background image, softkey and 
    // title text of the TOS form.
    static void RootForm_Update(RootForm *me, uint32 dwItemMask, IForm* piForm)
    {
       boolean bPopup = 0;
    
       // get form's popup flag
       bPopup = IFORM_GetIsPopup(piForm);
    
       // if the form's widget has changed, update the scroll model
       // for the scroll indicator in the softkey widget
       if (dwItemMask & FORMITEM_WIDGET) {
          
          IWidget *piWidget = NULL;
          // get form's widget
          IFORM_GetWidget(piForm, WID_FORM, &piWidget);
    
          // update the widget and the scroll model
          if (piWidget) {
    
             // if the active widget has been changed underneath us...
             
             if (me->piActiveWidget && piWidget != me->piActiveWidget) {
                // this block will only be executed when the form widget is changed
                // by the application logic while the form is active
                WidgetPos pos;
                WExtent we;
       
                IWIDGET_MoveFocus(FORM_WIDGET(me), (IWidget*)WIDGET_FOCUS_NONE);
       
                IWIDGET_GetExtent(me->piActiveWidget, &we);
                IWIDGET_SetExtent(piWidget, &we);
       
                // remove the previously active widget from the root container
                if (AEE_SUCCESS == IROOTCONTAINER_GetPos(me->piContainer, me->piActiveWidget, &pos)) {
                   IROOTCONTAINER_Remove(me->piContainer, me->piActiveWidget);
                }
                
                // add the new widget to the root container
                IROOTCONTAINER_Insert(me->piContainer, piWidget, WIDGET_ZTOPMOST, &pos);
                // and remember it fondly
                RELEASEIF(me->piActiveWidget);
                me->piActiveWidget = piWidget;
                ADDREFIF(piWidget);
    
                // set focus to the new widget
                IWIDGET_MoveFocus(FORM_WIDGET(me), piWidget);
             
             } else if (!me->piActiveWidget) {
                me->piActiveWidget = piWidget;
                ADDREFIF(piWidget);
             }
    
          }
    
          RELEASEIF(piWidget);
       }
    
    
       // if the form's background image has changed...
       // if form is a popup, then retain the background image 
       // from the previous form
       if (dwItemMask & FORMITEM_BACKGROUND && me->piBackground && !bPopup) {      
          IImage *pii = NULL;
          
          // Try to grab the image from the new form.  
          IFORM_GetBGImage(piForm, &pii);
    
          // If non-existent, try defaulting to the root form
          if (!pii) IFORM_GetBGImage(ROOTFORM_TO_IFORM(me), &pii);
          
          // Apply the result (NULL or otherwise) to our background widget
          IWIDGET_SetImage(me->piBackground, pii);
          RELEASEIF(pii);
       }
       
       // if the form's title text has changed...  retain previous title
       // if we are a popup 
    
       if ((dwItemMask & FORMITEM_TITLE) && me->piTitle && !bPopup) {
          // Release image. Text is owned by form
          RELEASEIF(me->titleInfo.piImage);
          IFORM_GetTextPtr(piForm, FID_TITLE, &me->titleInfo.pwText);
          IFORM_GetTitleImage(piForm, &me->titleInfo.piImage);
    
          // Set title info
          IWIDGET_SetImageStaticInfo(me->piTitle, &me->titleInfo, 0);
       }
    
       // if the form's softkey text has changed...
       if ((dwItemMask & FORMITEM_SOFTKEY) && me->piSoftkeys) {
    
          IForm* piTopForm = IROOTFORM_GetTopForm(ROOTFORM_TO_IROOTFORM(me));
    
          AECHAR *pwsz = NULL;
          IWidget *piKey = NULL;
    
          if (piTopForm == piForm) {
             // set softkey 1 text
             IFORM_GetTextPtr(piForm, FID_SOFTKEY1, &pwsz);
             if (AEE_SUCCESS == IWIDGET_GetSoftkey(me->piSoftkeys, PROP_SOFTKEY1, &piKey)) {
                IWIDGET_SetText(piKey, pwsz, 0);
             }
             RELEASEIF(piKey);
       
             // set softkey 2 text
             IFORM_GetTextPtr(piForm, FID_SOFTKEY2, &pwsz);
             if (AEE_SUCCESS == IWIDGET_GetSoftkey(me->piSoftkeys, PROP_SOFTKEY2, &piKey)) {
                IWIDGET_SetText(piKey, pwsz, 0);
             }
          }
          RELEASEIF(piKey);
       }
    
       if ((dwItemMask & FORMITEM_THEME_BASENAME)) {
          char *baseName = 0;
    
          IFORM_GetThemeBaseName(piForm, &baseName);
          RootForm_UpdateTheme(me, baseName);
       }
    
    }

    작은 매듭
  • 주석 은 정확 하고 이해 하기 쉬 워 야 하 며 이의 성 을 방지 해 야 한다. 잘못된 주석 은 해 롭 고 이익 이 없다
  • 주석 은 코드 에 대한 힌트 로 비대 함 과 주객 탈 주 를 피한다
  • 일목요연 한 코드 주석 추가 피하 기
  • 코드 를 줄 임 말로 쓰 지 마 세 요. 오해 가 생 길 수 있 습 니 다
  • 설명 은 프로그램의 운행 과정 을 설명 하 는 것 이 아니 라 원인 과 의 도 를 논술 하 는 데 사용 된다
  • .
    보충: 코드 는 다른 사람 에 게 보 여 주 는 것 입 니 다. 다른 사람 은 6 개 월 후의 당신 을 포함 할 수 있 습 니 다.
      《          》
      

    이상 의 내용 은 디 태 소프트웨어 대학 시리즈 과정 을 참고 하여 오리지널 을 보호 하 시기 바 랍 니 다!

    좋은 웹페이지 즐겨찾기